It is ok to rely on signals here because 
CMICmnLLDBDebuggerHandleEvents::HandleProcessEventStateStopped() 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.

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.


================
Comment at: tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp:839-840
@@ -838,3 +838,4 @@
     {
-        case 2: // Terminal interrupt signal. SIGINT
+        case SIGINT: // Terminal interrupt signal. SIGINT
+        case SIGSTOP:
         {
----------------
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:


```
void
CMICmnLLDBDebuggerHandleEvents::InitializeSignals()
{
    SBUnixSignals unix_signals = sbProcess.GetUnixSignals();
    m_SIGINT = unix_signals.GetSignalNumberFromName("SIGINT");
    m_SIGSTOP = unix_signals.GetSignalNumberFromName("SIGSTOP");
    m_SIGSEGV = unix_signals.GetSignalNumberFromName("SIGSEGV");
    m_SIGTRAP = unix_signals.GetSignalNumberFromName("SIGTRAP");
}

```

http://reviews.llvm.org/D7783

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-commits

Reply via email to