diff options
author | Johnny Chen <johnny.chen@apple.com> | 2012-03-22 00:08:13 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2012-03-22 00:08:13 +0000 |
commit | 7cb09b61b250dec8fe81f6105cf59207224eff0a (patch) | |
tree | a4b1697fb216c8cfccbb0414657162c3f2aa2b20 /lldb/tools/debugserver/source/MacOSX/arm/DNBArchImpl.h | |
parent | 167384d0da1831bbf68bc2caebb78a7635482ed4 (diff) | |
download | bcm5719-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.h | 7 |
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; }; |