aboutsummaryrefslogtreecommitdiff
path: root/source/Plugins/Process/Linux/LinuxThread.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/Plugins/Process/Linux/LinuxThread.cpp')
-rw-r--r--source/Plugins/Process/Linux/LinuxThread.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/source/Plugins/Process/Linux/LinuxThread.cpp b/source/Plugins/Process/Linux/LinuxThread.cpp
new file mode 100644
index 000000000..edb21bdbe
--- /dev/null
+++ b/source/Plugins/Process/Linux/LinuxThread.cpp
@@ -0,0 +1,63 @@
+//===-- LinuxThread.cpp -----------------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+// C Includes
+// C++ Includes
+// Other libraries and framework includes
+// Project includes
+#include "LinuxThread.h"
+
+using namespace lldb;
+using namespace lldb_private;
+
+//------------------------------------------------------------------------------
+// Constructors and destructors.
+
+LinuxThread::LinuxThread(Process &process, lldb::tid_t tid)
+ : POSIXThread(process, tid)
+{
+}
+
+LinuxThread::~LinuxThread()
+{
+}
+
+//------------------------------------------------------------------------------
+// ProcessInterface protocol.
+
+void
+LinuxThread::RefreshStateAfterStop()
+{
+ // Invalidate the thread names every time we get a stop event on Linux so we
+ // will re-read the procfs comm virtual file when folks ask for the thread name.
+ m_thread_name_valid = false;
+
+ POSIXThread::RefreshStateAfterStop();
+}
+
+void
+LinuxThread::TraceNotify(const ProcessMessage &message)
+{
+ RegisterContextPOSIX* reg_ctx = GetRegisterContextPOSIX();
+ if (reg_ctx)
+ {
+ uint32_t num_hw_wps = reg_ctx->NumSupportedHardwareWatchpoints();
+ uint32_t wp_idx;
+ for (wp_idx = 0; wp_idx < num_hw_wps; wp_idx++)
+ {
+ if (reg_ctx->IsWatchpointHit(wp_idx))
+ {
+ WatchNotify(message);
+ return;
+ }
+ }
+ }
+
+ POSIXThread::TraceNotify (message);
+} \ No newline at end of file