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 > <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 >> <mailto: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 <mailto:jing...@apple.com>> >> إلى: Fadi Botros <botros_f...@yahoo.com <mailto:botros_f...@yahoo.com>> >> نسخة كربونية: Michael Gottesman <mgottes...@apple.com >> <mailto:mgottes...@apple.com>>; "swift-users@swift.org >> <mailto:swift-users@swift.org>" <swift-users@swift.org >> <mailto: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 >>> <mailto: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 <mailto:jing...@apple.com>> >>> إلى: Fadi Botros <botros_f...@yahoo.com <mailto:botros_f...@yahoo.com>> >>> نسخة كربونية: Michael Gottesman <mgottes...@apple.com >>> <mailto:mgottes...@apple.com>>; "swift-users@swift.org >>> <mailto:swift-users@swift.org>" <swift-users@swift.org >>> <mailto: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 <mailto:swift-users@swift.org>> wrote: >>>> >>>> This happens when try to print(self) >>>> Processing command: po print(self) HandleCommand, cmd_obj : 'expression' >>>> Handl - Pastebin.com <https://pastebin.com/15b52C1x> >>>> >>>> >>>> Processing command: po print(self) HandleCommand, cmd_obj : 'expressio... >>>> <https://pastebin.com/15b52C1x> >>>> >>>> >>>> This happens when REPL then try to "import PerfectTemplate" >>>> == [UserExpression::Evaluate] Parsing expression import PerfectTemplate == >>>> Swif - Pastebin.com <https://pastebin.com/FsGgXa54> >>>> >>>> >>>> == [UserExpression::Evaluate] Parsing expression import PerfectTemplate == >>>> ... >>>> <https://pastebin.com/FsGgXa54> >>>> >>>> >>>> Also the same problem happens in Kitura (even if only use packages that >>>> depend on Swift 4) >>>> >>>> من: Michael Gottesman <mgottes...@apple.com <mailto:mgottes...@apple.com>> >>>> إلى: Michael Gottesman <mgottes...@apple.com >>>> <mailto:mgottes...@apple.com>> >>>> نسخة كربونية: "swift-users@swift.org <mailto:swift-users@swift.org>" >>>> <swift-users@swift.org <mailto:swift-users@swift.org>>; Fadi Botros >>>> <botros_f...@yahoo.com <mailto: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 >>>> >>>> <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 <mailto: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 <mailto: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 <http://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 <mailto:swift-users@swift.org> >>>>> https://lists.swift.org/mailman/listinfo/swift-users >>>>> <https://lists.swift.org/mailman/listinfo/swift-users> >>>> >>>> _______________________________________________ >>>> swift-users mailing list >>>> swift-users@swift.org <mailto:swift-users@swift.org> >>>> https://lists.swift.org/mailman/listinfo/swift-users >>>> <https://lists.swift.org/mailman/listinfo/swift-users> >>>> >>>> >>>> >>>> _______________________________________________ >>>> swift-users mailing list >>>> swift-users@swift.org <mailto:swift-users@swift.org> >>>> https://lists.swift.org/mailman/listinfo/swift-users >>>> <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