<div dir="ltr"><div dir="ltr">Hi,<br>I'm trying to use LLDB to debug Clang built with the LLVM toolchain.<br><br>However, whenever I try to evaluate a method call in the debugger,<br>I get the following error instead of the actual result:<br><br>error: Execution was interrupted,<br>reason: signal SIGSEGV: invalid address (fault address: 0x0).<br><br>(See the full output below.)<br><br>What am I doing wrong? GDB works fine in this scenario. LLDB works<br>fine with other projects I have on hand. Any help appreciated.<br><br>Thanks,<br>Jan<br></div><div dir="ltr"><br></div><div dir="ltr">--</div><div dir="ltr"><br></div><div dir="ltr">$ lldb-8 ./llvm-project/build/bin/clang<br>(lldb) target create "./llvm-project/build/bin/clang"<br>Current executable set to './llvm-project/build/bin/clang' (x86_64).<br>(lldb) b main<br>Breakpoint 1: where = clang`main + 25 at driver.cpp:322:18, address = 0x00000000043142d9<br>(lldb) r<br>Process 4920 launched: '/home/jan/Code/llvm-project/build/bin/clang' (x86_64)<br>Process 4920 stopped<br>* thread #1, name = 'clang', stop reason = breakpoint 1.1<br>    frame #0: 0x00000000043142d9 clang`main(argc_=1, argv_=0x00007fffffffdf28) at driver.cpp:322:18<br>   319     }<br>   320     <br>   321     int main(int argc_, const char **argv_) {<br>-> 322       llvm::InitLLVM X(argc_, argv_);<br>   323       SmallVector<const char *, 256> argv(argv_, argv_ + argc_);<br>   324     <br>   325       if (llvm::sys::Process::FixupStandardFileDescriptors())<br>(lldb) n<br>Process 4920 stopped<br>* thread #1, name = 'clang', stop reason = step over<br>    frame #0: 0x00000000043142ed clang`main(argc_=1, argv_=0x00007fffffffdf28) at driver.cpp:323:39<br>   320     <br>   321     int main(int argc_, const char **argv_) {<br>   322       llvm::InitLLVM X(argc_, argv_);<br>-> 323       SmallVector<const char *, 256> argv(argv_, argv_ + argc_);<br>   324     <br>   325       if (llvm::sys::Process::FixupStandardFileDescriptors())<br>   326         return 1;<br>(lldb) n<br>Process 4920 stopped<br>* thread #1, name = 'clang', stop reason = step over<br>    frame #0: 0x000000000431430c clang`main(argc_=1, argv_=0x00007fffffffdf28) at driver.cpp:325:7<br>   322       llvm::InitLLVM X(argc_, argv_);<br>   323       SmallVector<const char *, 256> argv(argv_, argv_ + argc_);<br>   324     <br>-> 325       if (llvm::sys::Process::FixupStandardFileDescriptors())<br>   326         return 1;<br>   327     <br>   328       llvm::InitializeAllTargets();<br>(lldb) e argv<br>(llvm::SmallVector<const char *, 256>) $0 = {<br>  llvm::SmallVectorImpl<const char *> = {<br>    llvm::SmallVectorTemplateBase<const char *, true> = {<br>      llvm::SmallVectorTemplateCommon<const char *> = {<br>        llvm::SmallVectorBase = (BeginX = 0x00007fffffffd598, Size = 1, Capacity = 256)<br>      }<br>    }<br>  }<br>  llvm::SmallVectorStorage<const char *, 256> = {<br>    InlineElts = {<br></div><div>      ... // actual elements here<br></div><div dir="ltr">    }<br>  }<br>}<br>(lldb) e argv.size()<br>error: Execution was interrupted, reason: signal SIGSEGV: invalid address (fault address: 0x0).<br>The process has been returned to the state before expression evaluation.<br>(lldb) <br><br></div></div>