blob: edb21bdbe0afe778d6c5d81243e1fc324a4e2ba1 [file] [log] [blame]
Michael Sartain9f822cd2013-07-31 23:27:46 +00001//===-- LinuxThread.cpp -----------------------------------------*- C++ -*-===//
2//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
10// C Includes
11// C++ Includes
12// Other libraries and framework includes
13// Project includes
14#include "LinuxThread.h"
15
16using namespace lldb;
17using namespace lldb_private;
18
19//------------------------------------------------------------------------------
20// Constructors and destructors.
21
22LinuxThread::LinuxThread(Process &process, lldb::tid_t tid)
23 : POSIXThread(process, tid)
24{
25}
26
27LinuxThread::~LinuxThread()
28{
29}
30
31//------------------------------------------------------------------------------
32// ProcessInterface protocol.
33
34void
35LinuxThread::RefreshStateAfterStop()
36{
37 // Invalidate the thread names every time we get a stop event on Linux so we
38 // will re-read the procfs comm virtual file when folks ask for the thread name.
39 m_thread_name_valid = false;
40
41 POSIXThread::RefreshStateAfterStop();
42}
43
44void
45LinuxThread::TraceNotify(const ProcessMessage &message)
46{
47 RegisterContextPOSIX* reg_ctx = GetRegisterContextPOSIX();
48 if (reg_ctx)
49 {
50 uint32_t num_hw_wps = reg_ctx->NumSupportedHardwareWatchpoints();
51 uint32_t wp_idx;
52 for (wp_idx = 0; wp_idx < num_hw_wps; wp_idx++)
53 {
54 if (reg_ctx->IsWatchpointHit(wp_idx))
55 {
56 WatchNotify(message);
57 return;
58 }
59 }
60 }
61
62 POSIXThread::TraceNotify (message);
63}