Specifying the clang import location is what is triggering the LLDBFrontend crash. I think you are saying that I should not need to specify the clang include import location to the compiler.
I've attached the unmodified SwiftProtobuf example program found in the docs at https://github.com/apple/swift-protobuf.git, so this is independent from my project. Are you able to simply do "swift build" and successfully debug and examine values like "info"? For me it fails unless I also specify the import location for the clang include directory. swift build -I/home/ed/swift/usr/lib/swift/clang/include And yes I checked, I am picking up the correct swift binary *Swift* $ swift --version Swift version 4.0.1-dev (LLVM 2dedb62a0b, Clang b9d76a314c, Swift 00e34e4b1e) Target: x86_64-unknown-linux-gnu *LLDB failure output* ------------------------ $ lldb HelloWorld (lldb) target create "HelloWorld" Current executable set to 'HelloWorld' (x86_64). (lldb) b main.swift:20 Breakpoint 1: where = HelloWorld`main + 1116 at main.swift:21, address = 0x000000000041146c (lldb) run Process 20745 launched: '/home/ed/Documents/prototest/.build/x86_64-unknown-linux/debug/HelloWorld' (x86_64) Process 20745 stopped * thread #1, name = 'HelloWorld', stop reason = breakpoint 1.1 frame #0: 0x000000000041146c HelloWorld`main at main.swift:21 18 let binaryData: Data = try info.serializedData() 19 20 // Deserialize a received Data object from `binaryData` -> 21 let decodedInfo = try BookInfo(serializedData: binaryData) 22 23 // Serialize to JSON format as a Data object 24 let jsonData: Data = try info.jsonUTF8Data() Target 0: (HelloWorld) stopped. (lldb) p info error: in auto-import: failed to get module 'HelloWorld' from AST context: <module-includes>:1:10: note: in file included from <module-includes>:1: #include "CoreFoundation.h" ^ error: /home/ed/swift/usr/lib/swift/CoreFoundation/CoreFoundation.h:26:10: error: 'stdarg.h' file not found #include <stdarg.h> ^ /home/ed/swift/usr/lib/swift/CoreFoundation/CFStream.h:20:10: note: while building module 'CDispatch' imported from /home/ed/swift/usr/lib/swift/CoreFoundation/CFStream.h:20: #include <dispatch/dispatch.h> ^ <module-includes>:1:10: note: in file included from <module-includes>:1: #include "dispatch.h" ^ /home/ed/swift/usr/lib/swift/dispatch/dispatch.h:30:10: note: in file included from /home/ed/swift/usr/lib/swift/dispatch/dispatch.h:30: #include <os/linux_base.h> ^ /home/ed/swift/usr/lib/swift/os/linux_base.h:19:10: note: in file included from /home/ed/swift/usr/lib/swift/os/linux_base.h:19: #include <sys/param.h> ^ error: /usr/include/x86_64-linux-gnu/sys/param.h:23:10: error: 'stddef.h' file not found #include <stddef.h> ^ error: could not build C module 'CoreFoundation' On Mon, Oct 16, 2017 at 11:00 AM, Alex Blewitt <alb...@apple.com> wrote: > > On 16 Oct 2017, at 18:52, Edward Connell <ewconn...@gmail.com> wrote: > > > > While creating a bug report for this problem I placed my simple repro > case in a separate project with default build settings and I found that it > no longer crashes LLDB. > > > > My main project links to several system C libraries, because I am using > libpng, Cuda, etc... > > In order for LLDB to function with my project and load things from the > AST context, I was told to specify the clang include directory. > > > > swift build -Xswiftc -I${SWIFT_HOME}/lib/swift/clang/include > > > > In the past everything worked fine. > > > > The stand alone bug repro project has no C library dependencies, however > if I add this option, LLDB crashes. > > If you can add that information to the bug report, including whawt version > of swift you're using (with swiftc -v) and the crash report then that would > allow others to see what problem you're experiencing. > > I assume that SWIFT_HOME is the same location as the swift executable that > you're running? Might be worth checking with 'which swift'. > > > I tried eliminating this option from my main project, and from a > separate project using SwiftProtobuf. The result is that I am no longer > able to debug either of them. Is there some new way we are supposed to pick > up system imports, or is the a legitimate bug? > > The Swift REPL on Linux needs to have the -I flag in order to work as > expected. However, the swift compiler shouldn't need to have that > information, since it will know where the corresponding include directory > is. > > Alex >
prototest.tar.gz
Description: GNU Zip compressed data
_______________________________________________ swift-users mailing list swift-users@swift.org https://lists.swift.org/mailman/listinfo/swift-users