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

Reply via email to