omjavaid created this revision.
omjavaid added reviewers: tberghammer, clayborg.
omjavaid added a subscriber: lldb-commits.
Herald added subscribers: rengolin, aemerson.

LLDB needs to know whether a watchpoint instruction is executed before or after 
the watchpoint exception is delivered.

This patch fixes this behavior for AArch64 and makes sure lldb disables and 
steps over the watchpoint instruction after watchpoint exception is delivered.

http://reviews.llvm.org/D11987

Files:
  source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp

Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
@@ -182,7 +182,9 @@
         response.Printf("watchpoint_exceptions_received:after;");
 #else
     if (host_arch.GetMachine() == llvm::Triple::mips64 ||
-        host_arch.GetMachine() == llvm::Triple::mips64el)
+        host_arch.GetMachine() == llvm::Triple::mips64el ||
+        host_arch.GetMachine() == llvm::Triple::aarch64 ||
+        host_arch.GetMachine() == llvm::Triple::aarch64_be)
         response.Printf("watchpoint_exceptions_received:before;");
     else
         response.Printf("watchpoint_exceptions_received:after;");


Index: source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
+++ source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp
@@ -182,7 +182,9 @@
         response.Printf("watchpoint_exceptions_received:after;");
 #else
     if (host_arch.GetMachine() == llvm::Triple::mips64 ||
-        host_arch.GetMachine() == llvm::Triple::mips64el)
+        host_arch.GetMachine() == llvm::Triple::mips64el ||
+        host_arch.GetMachine() == llvm::Triple::aarch64 ||
+        host_arch.GetMachine() == llvm::Triple::aarch64_be)
         response.Printf("watchpoint_exceptions_received:before;");
     else
         response.Printf("watchpoint_exceptions_received:after;");
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to