<div dir="ltr">That's fine, I was mostly just concerned that it wouldn't compile.  Windows has only a very small subset of SIG_XXX constants defined in its system headers.  lldb and lldb-mi define a few more for Windows that it needs, I just didn't have code in front of me so I wanted to make sure that the #defines being used here are defined somewhere on Windows so that it would compile.<br></div><br><div class="gmail_quote">On Fri Feb 20 2015 at 10:06:27 AM Greg Clayton <<a href="mailto:clayborg@gmail.com">clayborg@gmail.com</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">It is ok to rely on signals here because CMICmnLLDBDebuggerHandleEvents<u></u>::<u></u>HandleProcessEventStateStopped<u></u>() already determined that a signal was reported as the stop reason and windows just can avoid saying it stopped due to a signal, so no work needs to be done to work around this.<br>
<br>
You do need to ask the process about its signals and you can't use hard coded values, you need to look them up by name through the SBUnixSignals object that you can get from a live SBProcess instance. See inlined comments above.<br>
<br>
<br>
================<br>
Comment at: tools/lldb-mi/<u></u>MICmnLLDBDebuggerHandleEvents.<u></u>cpp:839-840<br>
@@ -838,3 +838,4 @@<br>
     {<br>
-        case 2: // Terminal interrupt signal. SIGINT<br>
+        case SIGINT: // Terminal interrupt signal. SIGINT<br>
+        case SIGSTOP:<br>
         {<br>
----------------<br>
You need to ask the process about its unix signal and you can't use hard coded values. You can make some member variables in CMICmnLLDBDebuggerHandleEvents and then initialize them when you have a process. The process must be up and running, you can't ask the process before it is stopped at its first stop. So when you get a eStateStopped event, see if it is the first one and then initialize your ivars with something like:<br>
<br>
<br>
```<br>
void<br>
CMICmnLLDBDebuggerHandleEvents<u></u>::InitializeSignals()<br>
{<br>
    SBUnixSignals unix_signals = sbProcess.GetUnixSignals();<br>
    m_SIGINT = unix_signals.<u></u>GetSignalNumberFromName("<u></u>SIGINT");<br>
    m_SIGSTOP = unix_signals.<u></u>GetSignalNumberFromName("<u></u>SIGSTOP");<br>
    m_SIGSEGV = unix_signals.<u></u>GetSignalNumberFromName("<u></u>SIGSEGV");<br>
    m_SIGTRAP = unix_signals.<u></u>GetSignalNumberFromName("<u></u>SIGTRAP");<br>
}<br>
<br>
```<br>
<br>
<a href="http://reviews.llvm.org/D7783" target="_blank">http://reviews.llvm.org/D7783</a><br>
<br>
EMAIL PREFERENCES<br>
  <a href="http://reviews.llvm.org/settings/panel/emailpreferences/" target="_blank">http://reviews.llvm.org/<u></u>settings/panel/<u></u>emailpreferences/</a><br>
<br>
<br>
</blockquote></div>