Author: tberghammer Date: Wed Aug 12 07:22:42 2015 New Revision: 244742 URL: http://llvm.org/viewvc/llvm-project?rev=244742&view=rev Log: Fix read only watchpoints on x86_64
On x86/x86_64 read only watchpoints aren't supported. Fall back to read/write watchpoints in that case. Note: Logic should be added to ignore the watchpoint hit when occurred because of a write. Modified: lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp Modified: lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp?rev=244742&r1=244741&r2=244742&view=diff ============================================================================== --- lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp (original) +++ lldb/trunk/source/Plugins/Process/Linux/NativeRegisterContextLinux_x86_64.cpp Wed Aug 12 07:22:42 2015 @@ -1018,8 +1018,10 @@ NativeRegisterContextLinux_x86_64::SetHa if (wp_index >= NumSupportedHardwareWatchpoints()) return Error ("Watchpoint index out of range"); + // Read only watchpoints aren't supported on x86_64. Fall back to read/write waitchpoints instead. + // TODO: Add logic to detect when a write happens and ignore that watchpoint hit. if (watch_flags == 0x2) - return Error ("Read watchpoints currently unsupported on x86_64 architecture"); + watch_flags = 0x3; if (watch_flags != 0x1 && watch_flags != 0x3) return Error ("Invalid read/write bits for watchpoint"); _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits