mohit.bhakkad created this revision.
mohit.bhakkad added a reviewer: clayborg.
mohit.bhakkad added subscribers: jaydeep, bhushan, nitesh.jain, sagar, 
lldb-commits.
mohit.bhakkad set the repository for this revision to rL LLVM.

rL249837 doesn't solves all the issues with MIPS false positives, some of the 
cases are not working.
so need to replace it with this logic.

Repository:
  rL LLVM

http://reviews.llvm.org/D15106

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

Index: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -2110,9 +2110,12 @@
                             watch_id_t watch_id = LLDB_INVALID_WATCH_ID;
                             if (wp_addr != LLDB_INVALID_ADDRESS)
                             {
-                                if (wp_hit_addr != LLDB_INVALID_ADDRESS)
-                                    wp_addr = wp_hit_addr;
-                                WatchpointSP wp_sp = 
GetTarget().GetWatchpointList().FindByAddress(wp_addr);
+                                WatchpointSP wp_sp;
+                                ArchSpec::Core core = 
GetTarget().GetArchitecture().GetCore();
+                                if (core >= ArchSpec::kCore_mips_first && core 
<= ArchSpec::kCore_mips_last)
+                                    wp_sp = 
GetTarget().GetWatchpointList().FindByAddress(wp_hit_addr);
+                                if (!wp_sp)
+                                    wp_sp = 
GetTarget().GetWatchpointList().FindByAddress(wp_addr);
                                 if (wp_sp)
                                 {
                                     wp_sp->SetHardwareIndex(wp_index);


Index: source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
===================================================================
--- source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -2110,9 +2110,12 @@
                             watch_id_t watch_id = LLDB_INVALID_WATCH_ID;
                             if (wp_addr != LLDB_INVALID_ADDRESS)
                             {
-                                if (wp_hit_addr != LLDB_INVALID_ADDRESS)
-                                    wp_addr = wp_hit_addr;
-                                WatchpointSP wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_addr);
+                                WatchpointSP wp_sp;
+                                ArchSpec::Core core = GetTarget().GetArchitecture().GetCore();
+                                if (core >= ArchSpec::kCore_mips_first && core <= ArchSpec::kCore_mips_last)
+                                    wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_hit_addr);
+                                if (!wp_sp)
+                                    wp_sp = GetTarget().GetWatchpointList().FindByAddress(wp_addr);
                                 if (wp_sp)
                                 {
                                     wp_sp->SetHardwareIndex(wp_index);
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to