summaryrefslogtreecommitdiffstats
path: root/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
diff options
context:
space:
mode:
authorJohnny Chen <johnny.chen@apple.com>2012-03-22 00:08:13 +0000
committerJohnny Chen <johnny.chen@apple.com>2012-03-22 00:08:13 +0000
commit7cb09b61b250dec8fe81f6105cf59207224eff0a (patch)
treea4b1697fb216c8cfccbb0414657162c3f2aa2b20 /lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
parent167384d0da1831bbf68bc2caebb78a7635482ed4 (diff)
downloadbcm5719-llvm-7cb09b61b250dec8fe81f6105cf59207224eff0a.tar.gz
bcm5719-llvm-7cb09b61b250dec8fe81f6105cf59207224eff0a.zip
WIP snapshot of hardware watchpoints for arm. A simple watchpoint has triggered.
However, the debugserver cannot get past the instruction which triggered the watchpoint. So a workaround is in place for the time being which disables the triggered watchpoint before resuming. Lots of commented out printf's remain in the source which needs to be cleaned up. WIP rdar://problem/9667960 llvm-svn: 153228
Diffstat (limited to 'lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h')
-rw-r--r--lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h b/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
index d0f9ea75b64..4e1eeec6f72 100644
--- a/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
+++ b/lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h
@@ -35,7 +35,9 @@ public:
m_sw_single_step_next_pc(INVALID_NUB_ADDRESS),
m_sw_single_step_break_id(INVALID_NUB_BREAK_ID),
m_sw_single_step_itblock_break_count(0),
- m_last_decode_pc(INVALID_NUB_ADDRESS)
+ m_last_decode_pc(INVALID_NUB_ADDRESS),
+ m_watchpoint_hw_index(-1),
+ m_watchpoint_did_occur(false)
{
memset(&m_dbg_save, 0, sizeof(m_dbg_save));
#if defined (USE_ARM_DISASSEMBLER_FRAMEWORK)
@@ -78,6 +80,7 @@ public:
virtual uint32_t EnableHardwareBreakpoint (nub_addr_t addr, nub_size_t size);
virtual uint32_t EnableHardwareWatchpoint (nub_addr_t addr, nub_size_t size, bool read, bool write);
virtual bool DisableHardwareBreakpoint (uint32_t hw_break_index);
+ virtual bool EnableHardwareWatchpoint (uint32_t hw_break_index);
virtual bool DisableHardwareWatchpoint (uint32_t hw_break_index);
virtual bool StepNotComplete ();
virtual void HardwareWatchpointStateChanged ();
@@ -258,6 +261,8 @@ protected:
arm_decoded_instruction_t m_last_decode_arm;
#endif
nub_addr_t m_last_decode_pc;
+ int32_t m_watchpoint_hw_index;
+ bool m_watchpoint_did_occur;
};
OpenPOWER on IntegriCloud