[lldb-dev] Hang of LLDB 3.8.0 on Debian 8

David Jones via lldb-dev lldb-dev at lists.llvm.org
Thu Mar 24 07:52:39 PDT 2016


I am trying to run LLDB from the 3.8.0 release on a Debian 8 system.
However, LLDB hangs during attach:

$ lldb /bin/ls
(lldb) target create "/bin/ls"
Current executable set to '/bin/ls' (x86_64).
(lldb) r

At which point it hangs. From another window:

$ ps -eLf|grep djones
djones   32218  7418 32218  3    3 10:33 pts/18   00:00:00 lldb /bin/ls
djones   32218  7418 32224  0    3 10:33 pts/18   00:00:00 lldb /bin/ls
djones   32218  7418 32225  0    3 10:34 pts/18   00:00:00 lldb /bin/ls

So three threads are created. I'm not sure how far LLDB got in creating its
target.

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.

I am also using LLDB as a library in my own application. Tracing through
that, my app hangs in the call to SBTarget::AttachToProcessWithID.

strace -f provides insight:

[pid   532] write(2, ": CommandLine Error: Option '", 29) = 29
[pid   532] write(2, "debug", 5)        = 5
[pid   532] write(2, "' registered more than once!\n", 29) = 29
[pid   532] write(2, "LLVM ERROR: inconsistency in reg"..., 60) = 60
[pid   532] exit_group(1)               = ?
[pid   532] +++ exited with 1 +++
[pid   524] <... futex resumed> )       = ? ERESTARTSYS (To be restarted if
SA_RESTART is set)
[pid   533] <... wait4 resumed> [{WIFEXITED(s) && WEXITSTATUS(s) == 1}],
__WALL, NULL) = 532
[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} ---
[pid   524] futex(0x7fed965909d0, FUTEX_WAIT, 531, NULL <unfinished ...>
[pid   533] madvise(0x7fed9558f000, 8368128, MADV_DONTNEED) = 0
[pid   533] _exit(0)                    = ?
[pid   533] +++ exited with 0 +++

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.

LLVM was built as follows:

tar xJf Downloads/llvm-3.8.0.src.tar.xz
tar xJf Downloads/cfe-3.8.0.src.tar.xz
tar xJf Downloads/lldb-3.8.0.src.tar.xz
cd llvm-3.8.0.src/tools
ln -s ../../cfe-3.8.0.src/ clang
ln -s ../../lldb-3.8.0.src/ lldb
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 ..
cmake --build . -- -j4
sudo cmake --build . --target install

Is this a known issue?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20160324/4df18b8e/attachment.html>


More information about the lldb-dev mailing list