omjavaid updated this revision to Diff 37748.
omjavaid added a comment.
This patch fixes unexpected behaviour of watchpoint code on Nexus 9 (AArch64).
http://reviews.llvm.org/D12522
Files:
source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
Index: source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
===================================================================
--- source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -807,11 +807,12 @@
memset (&dreg_state, 0, sizeof (dreg_state));
ioVec.iov_base = &dreg_state;
- ioVec.iov_len = sizeof (dreg_state);
if (hwbType == eDREGTypeWATCH)
{
hwbType = NT_ARM_HW_WATCH;
+ ioVec.iov_len = sizeof (dreg_state.dbg_info) + sizeof (dreg_state.pad)
+ + (sizeof (dreg_state.dbg_regs [0]) * m_max_hwp_supported);
for (uint32_t i = 0; i < m_max_hwp_supported; i++)
{
@@ -822,6 +823,8 @@
else
{
hwbType = NT_ARM_HW_BREAK;
+ ioVec.iov_len = sizeof (dreg_state.dbg_info) + sizeof (dreg_state.pad)
+ + (sizeof (dreg_state.dbg_regs [0]) * m_max_hbp_supported);
for (uint32_t i = 0; i < m_max_hbp_supported; i++)
{
Index: source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
===================================================================
--- source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
+++ source/Plugins/Process/Linux/NativeRegisterContextLinux_arm64.cpp
@@ -807,11 +807,12 @@
memset (&dreg_state, 0, sizeof (dreg_state));
ioVec.iov_base = &dreg_state;
- ioVec.iov_len = sizeof (dreg_state);
if (hwbType == eDREGTypeWATCH)
{
hwbType = NT_ARM_HW_WATCH;
+ ioVec.iov_len = sizeof (dreg_state.dbg_info) + sizeof (dreg_state.pad)
+ + (sizeof (dreg_state.dbg_regs [0]) * m_max_hwp_supported);
for (uint32_t i = 0; i < m_max_hwp_supported; i++)
{
@@ -822,6 +823,8 @@
else
{
hwbType = NT_ARM_HW_BREAK;
+ ioVec.iov_len = sizeof (dreg_state.dbg_info) + sizeof (dreg_state.pad)
+ + (sizeof (dreg_state.dbg_regs [0]) * m_max_hbp_supported);
for (uint32_t i = 0; i < m_max_hbp_supported; i++)
{
_______________________________________________
lldb-commits mailing list
[email protected]
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits