summaryrefslogtreecommitdiff
path: root/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
diff options
context:
space:
mode:
authorAshok Thirumurthi <ashok.thirumurthi@intel.com>2013-05-09 19:59:47 +0000
committerAshok Thirumurthi <ashok.thirumurthi@intel.com>2013-05-09 19:59:47 +0000
commitacbb1a5db5791f8c4b6beb1a673d474589d9a9a5 (patch)
tree151c00f84fa12b41ea3d5d216b078c48b1c58be3 /lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
parent078551c7b1b9ea71e32b0c9f87fb547d9f3ed9c7 (diff)
Fixed "log enable linux registers" and added a test.
- Eliminated the use of static for methods that read m_register_infos, so that these routines can be implemented in the base class. - Eliminated m_register_infos in the base class because this is not used when derived classes call UpdateRegisterInfo. - Also moved the namespace using declarations from headers to source files. Thanks to Daniel and Samuel for their review feedback. llvm-svn: 181538
Diffstat (limited to 'lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp')
-rw-r--r--lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp23
1 files changed, 12 insertions, 11 deletions
diff --git a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
index 4ebde16245e0..e9a45d79da67 100644
--- a/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
+++ b/lldb/source/Plugins/Process/Linux/ProcessMonitor.cpp
@@ -449,9 +449,9 @@ WriteOperation::Execute(ProcessMonitor *monitor)
class ReadRegOperation : public Operation
{
public:
- ReadRegOperation(lldb::tid_t tid, unsigned offset,
+ ReadRegOperation(lldb::tid_t tid, unsigned offset, const char *reg_name,
RegisterValue &value, bool &result)
- : m_tid(tid), m_offset(offset),
+ : m_tid(tid), m_offset(offset), m_reg_name(reg_name),
m_value(value), m_result(result)
{ }
@@ -460,6 +460,7 @@ public:
private:
lldb::tid_t m_tid;
uintptr_t m_offset;
+ const char *m_reg_name;
RegisterValue &m_value;
bool &m_result;
};
@@ -481,7 +482,7 @@ ReadRegOperation::Execute(ProcessMonitor *monitor)
}
if (log)
log->Printf ("ProcessMonitor::%s() reg %s: 0x%" PRIx64, __FUNCTION__,
- POSIXThread::GetRegisterNameFromOffset(m_offset), data);
+ m_reg_name, data);
}
//------------------------------------------------------------------------------
@@ -490,9 +491,9 @@ ReadRegOperation::Execute(ProcessMonitor *monitor)
class WriteRegOperation : public Operation
{
public:
- WriteRegOperation(lldb::tid_t tid, unsigned offset,
+ WriteRegOperation(lldb::tid_t tid, unsigned offset, const char *reg_name,
const RegisterValue &value, bool &result)
- : m_tid(tid), m_offset(offset),
+ : m_tid(tid), m_offset(offset), m_reg_name(reg_name),
m_value(value), m_result(result)
{ }
@@ -501,6 +502,7 @@ public:
private:
lldb::tid_t m_tid;
uintptr_t m_offset;
+ const char *m_reg_name;
const RegisterValue &m_value;
bool &m_result;
};
@@ -518,8 +520,7 @@ WriteRegOperation::Execute(ProcessMonitor *monitor)
#endif
if (log)
- log->Printf ("ProcessMonitor::%s() reg %s: %p", __FUNCTION__,
- POSIXThread::GetRegisterNameFromOffset(m_offset), buf);
+ log->Printf ("ProcessMonitor::%s() reg %s: %p", __FUNCTION__, m_reg_name, buf);
if (PTRACE(PTRACE_POKEUSER, m_tid, (void*)m_offset, buf, 0))
m_result = false;
else
@@ -1715,21 +1716,21 @@ ProcessMonitor::WriteMemory(lldb::addr_t vm_addr, const void *buf, size_t size,
}
bool
-ProcessMonitor::ReadRegisterValue(lldb::tid_t tid, unsigned offset,
+ProcessMonitor::ReadRegisterValue(lldb::tid_t tid, unsigned offset, const char* reg_name,
unsigned size, RegisterValue &value)
{
bool result;
- ReadRegOperation op(tid, offset, value, result);
+ ReadRegOperation op(tid, offset, reg_name, value, result);
DoOperation(&op);
return result;
}
bool
ProcessMonitor::WriteRegisterValue(lldb::tid_t tid, unsigned offset,
- const RegisterValue &value)
+ const char* reg_name, const RegisterValue &value)
{
bool result;
- WriteRegOperation op(tid, offset, value, result);
+ WriteRegOperation op(tid, offset, reg_name, value, result);
DoOperation(&op);
return result;
}