[lldb-dev] thread format evaluation in lldb

Todd Fiala todd.fiala at gmail.com
Wed Jun 18 20:19:38 PDT 2014


Hey all,

How exactly does a line like the following excerpted from an LLDB session
get printed in lldb?

Process 21522 stopped

* thread #1: tid = 21522, 0x00007f289477f070 libc.so.6`nanosleep + 16 at
syscall-template.S:82, name = 'hello', stop reason = signal SIGCONT


Grepping around, it looks like the thread format might get controlled by
the thread-format property, defaulting to the DEFAULT_THREAD_FORMAT in
Debugger.cpp.

The issue I'm trying to figure out is how the stop reason is turned into
text.  The thread format lists a line like this:

    "{, stop reason = ${thread.stop-reason}}"\
It's not clear to me how that gets evaluated, or if I'm even looking in the
right spot.

The reason I care: right now in llgs I'm seeing the Linux x86_64 pass along
the Linux SIGSTOP value as a stop notification (hex 0x13 on Linux) but the
lldb side (also running on Linux) is printing SIGCONT.  That would make
sense if it was using a straight-up UnixSignals instead of LinuxSignals,
where the signal numbers are different.  I'm hoping to track that down by
figuring out how it is getting printed.

Thanks!
-- 
-Todd
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20140618/aa2052bb/attachment.html>


More information about the lldb-dev mailing list