<div dir="ltr"><div><div><div><div><div><div><div>I am experimenting with the LLDB SB API to add debug capability to a compiler.<br><br></div>Right now I'd like to print out a backtrace when a program "crashes". Let's define "crash" as "receive SIGILL or SIGSEGV".<br><br></div>I have a small routine that forks, runs the compiled program as a child, and has the parent attach to the child.  I get an SBProcess handle, and then:<br><br>                m_Process.Continue();<br><br>                state = m_Process.GetState();<br>                while (state != eStateExited) {<br>                    if (state == eStateStopped) {<br>                        dumpBackTrace();<br>                        m_Process.Detach(false);<br>                        break;<br>                    }<br>                    m_Process.Continue();<br>                    state = m_Process.GetState();<br>                }<br><br></div>However, a process may stop for many reasons: it may hit a breakpoint, or it may get a signal other than one that indicates a crash. In particular, to synchronize parent and child, I have the child pause(), and the parent sends SIGUSR1 once it's attached. I do not want the receipt of SIGUSR1 to cause a backtrace.<br><br></div>So:<br><br></div>1. How do I determine that a process has entered eStateStopped because it received a signal?<br></div>2. How do I determine which signal was received?<br><br></div>The Doxygen docs don't have any detail, and none of the C/Python examples seem to go into this much detail.<br><br></div>