linux: initial support for 'real' signal handling

This patch upgrades the Linux process plugin to handle a larger range of signal
events.  For example, we can detect when the inferior has "crashed" and why,
interrupt a running process, deliver an arbitrary signal, and so on.



git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@128547 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/Linux/ProcessLinux.h b/source/Plugins/Process/Linux/ProcessLinux.h
index 7335611..762f817 100644
--- a/source/Plugins/Process/Linux/ProcessLinux.h
+++ b/source/Plugins/Process/Linux/ProcessLinux.h
@@ -17,6 +17,7 @@
 
 // Other libraries and framework includes
 #include "lldb/Target/Process.h"
+#include "LinuxSignals.h"
 #include "ProcessMessage.h"
 
 class ProcessMonitor;
@@ -178,6 +179,9 @@
 
     ProcessMonitor &GetMonitor() { return *m_monitor; }
 
+    lldb_private::UnixSignals &
+    GetUnixSignals();
+
 private:
     /// Target byte order.
     lldb::ByteOrder m_byte_order;
@@ -192,6 +196,19 @@
     lldb_private::Mutex m_message_mutex;
     std::queue<ProcessMessage> m_message_queue;
 
+    /// True when the process has entered a state of "limbo".
+    ///
+    /// This flag qualifies eStateStopped.  It lets us know that when we
+    /// continue from this state the process will exit.  Also, when true,
+    /// Process::m_exit_status is set.
+    bool m_in_limbo;
+
+    /// Drive any exit events to completion.
+    bool m_exit_now;
+
+    /// Linux-specific signal set.
+    LinuxSignals m_linux_signals;
+
     /// Updates the loaded sections provided by the executable.
     ///
     /// FIXME:  It would probably be better to delegate this task to the
@@ -200,6 +217,9 @@
 
     /// Returns true if the process has exited.
     bool HasExited();
+
+    /// Returns true if the process is stopped.
+    bool IsStopped();
 };
 
 #endif  // liblldb_MacOSXProcess_H_