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/LinuxThread.h b/source/Plugins/Process/Linux/LinuxThread.h
index 88973fc..cafc83a 100644
--- a/source/Plugins/Process/Linux/LinuxThread.h
+++ b/source/Plugins/Process/Linux/LinuxThread.h
@@ -17,6 +17,7 @@
// Other libraries and framework includes
#include "lldb/Target/Thread.h"
+class ProcessMessage;
class ProcessMonitor;
class RegisterContextLinux;
@@ -51,9 +52,7 @@
//
bool Resume();
- void BreakNotify();
- void TraceNotify();
- void ExitNotify();
+ void Notify(const ProcessMessage &message);
protected:
virtual bool
@@ -63,7 +62,6 @@
RestoreSaveFrameZero(const RegisterCheckpoint &checkpoint);
private:
-
RegisterContextLinux *
GetRegisterContextLinux ()
{
@@ -77,26 +75,18 @@
lldb::BreakpointSiteSP m_breakpoint;
lldb::StopInfoSP m_stop_info;
- // Cached process stop id. Used to ensure we do not recalculate stop
- // information/state needlessly.
- uint32_t m_stop_info_id;
-
- enum Notification {
- eNone,
- eBreak,
- eTrace,
- eExit
- };
-
- Notification m_note;
-
- ProcessMonitor &GetMonitor();
+ ProcessMonitor &
+ GetMonitor();
lldb::StopInfoSP
GetPrivateStopReason();
- void
- RefreshPrivateStopReason();
+ void BreakNotify(const ProcessMessage &message);
+ void TraceNotify(const ProcessMessage &message);
+ void LimboNotify(const ProcessMessage &message);
+ void SignalNotify(const ProcessMessage &message);
+ void SignalDeliveredNotify(const ProcessMessage &message);
+ void CrashNotify(const ProcessMessage &message);
lldb_private::Unwind *
GetUnwinder();