diff options
author | Stephen Wilson <wilsons@start.ca> | 2011-03-30 15:55:52 +0000 |
---|---|---|
committer | Stephen Wilson <wilsons@start.ca> | 2011-03-30 15:55:52 +0000 |
commit | 84ffe7033c41fd3501eab22632cab93d7df7b1a9 (patch) | |
tree | 24cc9529cf897be63fa3db393e0441e53d6914b9 /lldb/source/Plugins/Process/Linux/LinuxThread.h | |
parent | 8564e0de96d18eba9d8501611591c7c3ef9d8be3 (diff) | |
download | bcm5719-llvm-84ffe7033c41fd3501eab22632cab93d7df7b1a9.tar.gz bcm5719-llvm-84ffe7033c41fd3501eab22632cab93d7df7b1a9.zip |
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.
llvm-svn: 128547
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/LinuxThread.h')
-rw-r--r-- | lldb/source/Plugins/Process/Linux/LinuxThread.h | 30 |
1 files changed, 10 insertions, 20 deletions
diff --git a/lldb/source/Plugins/Process/Linux/LinuxThread.h b/lldb/source/Plugins/Process/Linux/LinuxThread.h index 88973fc8844..cafc83a7c87 100644 --- a/lldb/source/Plugins/Process/Linux/LinuxThread.h +++ b/lldb/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 @@ public: // bool Resume(); - void BreakNotify(); - void TraceNotify(); - void ExitNotify(); + void Notify(const ProcessMessage &message); protected: virtual bool @@ -63,7 +62,6 @@ protected: RestoreSaveFrameZero(const RegisterCheckpoint &checkpoint); private: - RegisterContextLinux * GetRegisterContextLinux () { @@ -77,26 +75,18 @@ private: 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(); |