<div dir="ltr"><div><div><div>I am trying to run LLDB from the 3.8.0 release on a Debian 8 system. However, LLDB hangs during attach:<br><br>$ lldb /bin/ls<br>(lldb) target create "/bin/ls"<br>Current executable set to '/bin/ls' (x86_64).<br>(lldb) r<br><br></div><div>At which point it hangs. From another window:<br><br>$ ps -eLf|grep djones<br>djones   32218  7418 32218  3    3 10:33 pts/18   00:00:00 lldb /bin/ls<br>djones   32218  7418 32224  0    3 10:33 pts/18   00:00:00 lldb /bin/ls<br>djones   32218  7418 32225  0    3 10:34 pts/18   00:00:00 lldb /bin/ls<br><br></div><div>So three threads are created. I'm not sure how far LLDB got in creating its target.<br><br></div>The 3.7 releases did this, on both Debian and Ubuntu 14.04LTS. However, the 3.8 release fixed this for Ubuntu. I had neglected to test this on Debian.<br><br></div>I am also using LLDB as a library in my own application. Tracing through that, my app hangs in the call to SBTarget::AttachToProcessWithID.<br><br></div><div>strace -f provides insight:<br><br>[pid   532] write(2, ": CommandLine Error: Option '", 29) = 29<br>[pid   532] write(2, "debug", 5)        = 5<br>[pid   532] write(2, "' registered more than once!\n", 29) = 29<br>[pid   532] write(2, "LLVM ERROR: inconsistency in reg"..., 60) = 60<br>[pid   532] exit_group(1)               = ?<br>[pid   532] +++ exited with 1 +++<br>[pid   524] <... futex resumed> )       = ? ERESTARTSYS (To be restarted if SA_RESTART is set)<br>[pid   533] <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}], __WALL, NULL) = 532<br>[pid   524] --- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=532, si_uid=1500, si_status=1, si_utime=0, si_stime=0} ---<br>[pid   524] futex(0x7fed965909d0, FUTEX_WAIT, 531, NULL <unfinished ...><br>[pid   533] madvise(0x7fed9558f000, 8368128, MADV_DONTNEED) = 0<br>[pid   533] _exit(0)                    = ?<br>[pid   533] +++ exited with 0 +++<br><br></div><div>It looks like the error message to the effect that an option was registered more than once never makes it out, causes child death, and the parent hangs waiting for a child that will never signal.<br><br></div><div>LLVM was built as follows:<br><br>tar xJf Downloads/llvm-3.8.0.src.tar.xz<br>tar xJf Downloads/cfe-3.8.0.src.tar.xz <br>tar xJf Downloads/lldb-3.8.0.src.tar.xz <br>cd llvm-3.8.0.src/tools<br>ln -s ../../cfe-3.8.0.src/ clang<br>ln -s ../../lldb-3.8.0.src/ lldb<br>cmake -DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON -DCMAKE_INSTALL_PREFIX=/tools/llvm/3.8.0dbg -DLLVM_TARGETS_TO_BUILD="X86;CppBackend" -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON ..<br>cmake --build . -- -j4<br>sudo cmake --build . --target install<br><br></div>Is this a known issue?<br><br><div><div><div><br></div></div></div></div>