It does look like this is a known bug (not yet fixed) in SPM:

https://bugs.swift.org/browse/SR-3280 <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 
>> <mailto: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 <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>>
>> تاريخ الإرسال: الثلاثاء 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