[lldb-dev] Why did the process stop?

Pavel Labath labath at google.com
Mon Jun 29 01:23:49 PDT 2015


> 1. How do I determine that a process has entered eStateStopped because it
> received a signal?
> 2. How do I determine which signal was received?

Hi,

stop reasons are not a property of the whole process, but of a
particular thread (after all, you can have multiple threads stopping
at the same time for different (or same) reasons). So, to get the stop
reason, you first need to enumerate all the threads of the process
(SBProcess::GetThreadAtIndex) and then ask each thread for it's stop
reason (SBThread::GetStopReason). If the stop reason is
eStopReasonSignaled, then SBThread::GetStopReasonDataAtIndex(0) will
give you the signal number.

References: <http://lldb.llvm.org/python_reference/lldb.SBThread-class.html>,
<http://lldb.llvm.org/python_reference/lldb.SBProcess-class.html>

hope that helps,
pl



More information about the lldb-dev mailing list