Interesting... You might want to add these discoveries to the SR that I mentioned, or file a new one with these comments. At this point you're trying to help out the folks working on SPM and a bug report is a more direct way to do that than the swift-users list.
Jim > On Nov 7, 2017, at 8:10 AM, Fadi Botros <botros_f...@yahoo.com> wrote: > > Some information may be leading to resolve of this problem > > I think "ld" tool does a lot of the trick > > Notice the difference between the results of the two compilations (Xcode and > SPM): > > Kitura example via Xcode, when invoked "target modules list" on lldb > > Gets this > [ 0] 788D7481-3E7E-3B4D-805E-A18937409552 0x0000000100000000 > /Users/mac/Documen - Pastebin.com > > [ 0] 788D7481-3E7E-3B4D-805E-A18937409552 0x0000000100000000 /Users/mac/Do... > > When invoked on the compiled via SPM it results in : > [ 0] ED5DAA33-8E50-3EE9-8487-1C5931520130 0x0000000100000000 > /Users/mac/Documen - Pastebin.com > > [ 0] ED5DAA33-8E50-3EE9-8487-1C5931520130 0x0000000100000000 /Users/mac/Do... > > > > It seems the modules are compiled and linked SEPARATELY in Xcode, and this > succeed in debugging > But in SPM, all are compiled as one module (it may have submodules) > > I think if you provide something compiles to dynamic link libraries on Linux > (and SPM in general) like frameworks on macOS, it will solve the problem > > > Pastebin.com - #1 paste tool since 2002! > Pastebin.com is the number one paste tool since 2002. Pastebin is a website > where you can store text online for ... > > > > > من: Jim Ingham <jing...@apple.com> > إلى: Fadi Botros <botros_f...@yahoo.com> > نسخة كربونية: Michael Gottesman <mgottes...@apple.com>; > "swift-users@swift.org" <swift-users@swift.org> > تاريخ الإرسال: الثلاثاء 7 نوفمبر، 2017 2:29 ص > الموضوع: Re: [swift-users] About Swift Package Manager and LLDB > > It does look like this is a known bug (not yet fixed) in SPM: > > https://bugs.swift.org/browse/SR-3280 > > The bug isn’t fixed yet (apparently it’s blocked on a swift compiler issue.) > There’s a workaround in that report, though I don’t know how viable it is. > Anyway, you can track that bug to see when this gets fixed. > > Jim > >> On Nov 6, 2017, at 3:45 PM, Fadi Botros <botros_f...@yahoo.com> >> wrote: >> >> >> I don't think Perfect has problems because it debugs perfectly on Xcode >> Kitura may have some flaws because on Xcode also causes some issues BUT YOU >> STILL CAN GET FRAME, ETC.. WHILE NOT HAVING THOSE IN SPM >> >> The problem is in SPM >> Just make the SPM build Swift Packages like Xcode (or equivalent) >> >> من: Jim Ingham <jing...@apple.com> >> إلى: Fadi Botros <botros_f...@yahoo.com> >> نسخة كربونية: Michael Gottesman <mgottes...@apple.com>; >> "swift-users@swift.org" <swift-users@swift.org> >> تاريخ الإرسال: الثلاثاء 7 نوفمبر، 2017 1:39 ص >> الموضوع: Re: بخصوص: بخصوص: [swift-users] About Swift Package Manager and LLDB >> >> It isn’t quite as mysterious as that. lldb emulates the context of the >> frame you are stopped in when you run “frame variable” or “expression”. It >> looks like PerfectTemplate doesn’t have a problem, and doesn’t rely on >> modules that we can’t reconstruct. But some of the other modules do have >> problems. For instance, if I let the program come up, interrupt it and >> switch to a frame in the PerfectHTTPServer, then I see: >> >> (lldb) expr let $mystr = "Some string" >> error: in auto-import: >> failed to get module 'PerfectHTTPServer' from AST context: >> error: missing required modules: 'PerfectCHTTPParser', 'PerfectCZlib' >> >> >> But that’s not the only one with problems, and I’m still not getting any >> useful error messages back from swift. I’ll have to dig into this more. >> >> Jim >> >> >> >>> On Nov 6, 2017, at 2:38 PM, Fadi Botros <botros_f...@yahoo.com> >>> wrote: >>> >>> WEIRD WEIRD WEIRD >>> It seems it is threading issue >>> Because when I tried to breakpoint on line 71 file main.swift (like you did) >>> It worked perfectly >>> I even could "frame variable" fully >>> >>> It seems that perfect framework when handle an HTTP request, it makes >>> something in threads, I don't know how to debug it >>> >>> Try to debug on line 31 then invoke an HTTP request on localhost:8181, you >>> will reproduce the error >>> >>> But it works when I use xcode (Again this is irreleveant, this is not the >>> solution) >>> >>> >>> من: Jim Ingham <jing...@apple.com> >>> إلى: Fadi Botros <botros_f...@yahoo.com> >>> نسخة كربونية: Michael Gottesman <mgottes...@apple.com>; >>> "swift-users@swift.org" <swift-users@swift.org> >>> تاريخ الإرسال: الثلاثاء 7 نوفمبر، 2017 12:21 ص >>> الموضوع: Re: بخصوص: [swift-users] About Swift Package Manager and LLDB >>> >>> This works for me (with Xcode 9.0): >>> >>> > git clone https://github.com/PerfectlySoft/PerfectTemplate.git PT >>> Cloning into 'PT'... >>> remote: Counting objects: 214, done. >>> remote: Total 214 (delta 0), reused 0 (delta 0), pack-reused 214 >>> Receiving objects: 100% (214/214), 48.65 KiB | 0 bytes/s, done. >>> Resolving deltas: 100% (110/110), done. >>> > cd PT >>> > swift build >>> <lots of output> >>> > cd .build/debug >>> > lldb PerfectTemplate >>> (lldb) target create "PerfectTemplate" >>> Current executable set to 'PerfectTemplate' (x86_64). >>> (lldb) b s -l 71 >>> Breakpoint 1: where = PerfectTemplate`main + 2627 at main.swift:71, address >>> = 0x0000000100436c33 >>> (lldb) run >>> Process 26948 launched: >>> '/private/tmp/PT/.build/x86_64-apple-macosx10.10/debug/PerfectTemplate' >>> (x86_64) >>> Process 26948 stopped >>> * thread #1, queue = 'com.apple.main-thread', stop reason = breakpoint 1.1 >>> frame #0: 0x0000000100436c33 PerfectTemplate`main at main.swift:71 >>> 68 >>> 69 do { >>> 70 // Launch the servers based on the configuration data. >>> -> 71 try HTTPServer.launch(configurationData: confData) >>> ^ >>> 72 } catch { >>> 73 fatalError("\(error)") // fatal error launching one of >>> the servers >>> 74 } >>> Target 0: (PerfectTemplate) stopped. >>> (lldb) expr confData.count >>> (Int) $R1 = 1 >>> >>> Do the same steps not work for you? If you were doing something different >>> can you describe the steps you took? >>> >>> Jim >>> >>>> On Nov 6, 2017, at 2:10 PM, Fadi Botros <botros_f...@yahoo.com> >>>> wrote: >>>> >>>> Also please noted >>>> I think it is a SPM issue not an LLDB one >>>> Because when compiled on the same mac with Xcode (Swift package manager >>>> generate Xcode project), then use xcode-build >>>> LLDB works perfectly in this circumstances >>>> >>>> I think you should refine the compilation script generated by SPM to >>>> generate something like Xcode results (I think Xcode itself uses normal >>>> Swift toolchain, I think it does nothing here more than generating a >>>> better compilation/linking script) >>>> >>>> >>>> من: Jim Ingham <jing...@apple.com> >>>> إلى: Fadi Botros <botros_f...@yahoo.com> >>>> نسخة كربونية: Michael Gottesman <mgottes...@apple.com>; >>>> "swift-users@swift.org" <swift-users@swift.org> >>>> تاريخ الإرسال: الإثنين 6 نوفمبر، 2017 11:45 م >>>> الموضوع: Re: [swift-users] About Swift Package Manager and LLDB >>>> >>>> Swift doesn’t seem to be reporting whatever the error is, I just see: >>>> >>>> ((SwiftASTContext*)0x7f8c555c84a0)->GetModule('PerfectTemplate') -- failed >>>> with no error >>>> >>>> That’s not very helpful. Again, I’ll probably need to make this happen >>>> locally to see what went wrong. If you have a project that shows the >>>> issue which you can make available, please file a bug with a description >>>> of how you build and debug this app, I’ll take a look. >>>> >>>> Jim >>>> >>>> >>>>> On Nov 6, 2017, at 12:56 PM, Fadi Botros <botros_f...@yahoo.com> >>>>> wrote: >>>>> >>>>> OK >>>>> Here is when captured "print self" log from the beginning >>>>> >>>>> Attached here is the full log file >>>>> See the attachments >>>>> من: Jim Ingham <jing...@apple.com> >>>>> إلى: Fadi Botros <botros_f...@yahoo.com> >>>>> نسخة كربونية: Michael Gottesman <mgottes...@apple.com>; >>>>> "swift-users@swift.org" <swift-users@swift.org> >>>>> تاريخ الإرسال: الإثنين 6 نوفمبر، 2017 10:15 م >>>>> الموضوع: Re: [swift-users] About Swift Package Manager and LLDB >>>>> >>>>> The log for “print self” was unfortunately captured too late. Reading in >>>>> the PerfectTemplate module had already failed, and so any subsequent >>>>> attempt will just report it as failed. To get the complete error log for >>>>> this, you need to put: >>>>> >>>>> log enable -f /tmp/lldb-type-log.txt lldb types >>>>> >>>>> in your ~/.lldbinit file and then start a fresh debugging session and >>>>> capture the whole session. >>>>> >>>>> The failure from the REPL is because you have to tell the REPL where to >>>>> look for other frameworks from which it might load modules. You can pass >>>>> appropriate -I, -L and -F flags to the “swift” invocation too tell the >>>>> compiler lldb’s using to implement the REPL where to look for this module. >>>>> >>>>> The example you gave seems to be a MacOS X example. The binary type was >>>>> MachO etc. If this is just a small example that you are using to >>>>> demonstrate the problem, can you file a PR with the swift bug reporter >>>>> with this example and how you built/ran it and we can take a look here. >>>>> That’s probably easier than trying to pass logs back and forth. >>>>> >>>>> Jim >>>>> >>>>>> On Nov 6, 2017, at 11:27 AM, Fadi Botros via swift-users >>>>>> <swift-users@swift.org> wrote: >>>>>> >>>>>> This happens when try to print(self) >>>>>> Processing command: po print(self) HandleCommand, cmd_obj : 'expression' >>>>>> Handl - Pastebin.com >>>>>> >>>>>> Processing command: po print(self) HandleCommand, cmd_obj : 'expressio... >>>>>> >>>>>> >>>>>> This happens when REPL then try to "import PerfectTemplate" >>>>>> == [UserExpression::Evaluate] Parsing expression import PerfectTemplate >>>>>> == Swif - Pastebin.com >>>>>> >>>>>> == [UserExpression::Evaluate] Parsing expression import PerfectTemplate >>>>>> == ... >>>>>> >>>>>> >>>>>> Also the same problem happens in Kitura (even if only use packages that >>>>>> depend on Swift 4) >>>>>> >>>>>> من: Michael Gottesman <mgottes...@apple.com> >>>>>> إلى: Michael Gottesman <mgottes...@apple.com> >>>>>> نسخة كربونية: "swift-users@swift.org" <swift-users@swift.org>; Fadi >>>>>> Botros <botros_f...@yahoo.com> >>>>>> تاريخ الإرسال: الإثنين 6 نوفمبر، 2017 7:01 م >>>>>> الموضوع: Re: [swift-users] About Swift Package Manager and LLDB >>>>>> >>>>>> Or actually: >>>>>> >>>>>> https://github.com/apple/swift/blob/master/docs/DebuggingTheCompiler.rst#debugging-failures-in-lldb >>>>>> >>>>>> I would just enable all of the logging and post it here or if the log is >>>>>> very big put the log into a pastebin. >>>>>> >>>>>>> On Nov 6, 2017, at 8:59 AM, Michael Gottesman via swift-users >>>>>>> <swift-users@swift.org> wrote: >>>>>>> >>>>>> I am not going to answer this fully (I forwarded it to the appropriate >>>>>> people though). But to help them out, can you go to >>>>>> ./docs/DebuggingTheCompiler and enable lldb logging and post the output >>>>>> here? >>>>>> >>>>>> Michael >>>>>> >>>>>>> On Nov 6, 2017, at 8:43 AM, Fadi Botros via swift-users >>>>>>> <swift-users@swift.org> wrote: >>>>>>> >>>>>>> I'm interested in doing Web Application using Swift and promoting this >>>>>>> to be a trend someday. >>>>>>> But I couldn't find a way to debug web apps without using Xcode >>>>>>> This is irrelevant because web applications are mainly on Linux, so >>>>>>> what if we want to do remote debugging ? >>>>>>> >>>>>>> I tried using the SPM, and when I try to compile a Kitura or Perfect >>>>>>> app then try to debug it, it gives me this >>>>>>> >>>>>>> (lldb) po print(self) >>>>>>> warning: Swift error in module <moduleName>. >>>>>>> Debug info from this module will be unavailable in the debugger. >>>>>>> >>>>>>> error: in auto-import: >>>>>>> failed to get module '<SomeModuleName>' from AST context >>>>>>> >>>>>>> I'm using macOS Sierra (sorry didn't have time to upgrade), with Swift >>>>>>> 4 that comes with Xcode 9 >>>>>>> Also tried the same experiment on Xubuntu using Swift 4 debian package >>>>>>> provided on swift.org itself >>>>>>> >>>>>>> The only succeeded way is to generate an xcodeproj and compile it, this >>>>>>> is irrelevant because it is only macOS, while servers are Linux. >>>>>>> _______________________________________________ >>>>>>> swift-users mailing list >>>>>>> swift-users@swift.org >>>>>>> https://lists.swift.org/mailman/listinfo/swift-users >>>>>> >>>>>> _______________________________________________ >>>>>> swift-users mailing list >>>>>> swift-users@swift.org >>>>>> https://lists.swift.org/mailman/listinfo/swift-users >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> swift-users mailing list >>>>>> swift-users@swift.org >>>>>> https://lists.swift.org/mailman/listinfo/swift-users >>>>> >>>>> >>>>> >>>>> <lldb-type-log.txt> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > _______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users