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

For archs like MIPS, where watchpoints are triggered before associated 
instruction runs,
we need to disable watchpoint, single step and re-enable watchpoint, so that 
process 
resumes without reporting same watchpoint. This is provided by code at 
Target/StopInfo.cpp:719

But if we check for ignore_count condition before this functionality, it 
reports same watchpoint 
again and again and gets ignored before ignore condition gets false.

So shifting this condition to appropriate location.
This solves TestWatchpointIgnoreCount.py testcase for MIPS.

Repository:
  rL LLVM

http://reviews.llvm.org/D13296

Files:
  source/Breakpoint/Watchpoint.cpp
  source/Target/StopInfo.cpp

Index: source/Target/StopInfo.cpp
===================================================================
--- source/Target/StopInfo.cpp
+++ source/Target/StopInfo.cpp
@@ -759,6 +759,9 @@
                     if (!wp_hit_sp)
                         m_should_stop = false;
                 }
+
+                if (wp_sp->GetHitCount() <= wp_sp->GetIgnoreCount())
+                    m_should_stop = false;
                 
                 if (m_should_stop && wp_sp->GetConditionText() != NULL)
                 {
Index: source/Breakpoint/Watchpoint.cpp
===================================================================
--- source/Breakpoint/Watchpoint.cpp
+++ source/Breakpoint/Watchpoint.cpp
@@ -190,9 +190,6 @@
     if (!IsEnabled())
         return false;
 
-    if (GetHitCount() <= GetIgnoreCount())
-        return false;
-
     return true;
 }
 


Index: source/Target/StopInfo.cpp
===================================================================
--- source/Target/StopInfo.cpp
+++ source/Target/StopInfo.cpp
@@ -759,6 +759,9 @@
                     if (!wp_hit_sp)
                         m_should_stop = false;
                 }
+
+                if (wp_sp->GetHitCount() <= wp_sp->GetIgnoreCount())
+                    m_should_stop = false;
                 
                 if (m_should_stop && wp_sp->GetConditionText() != NULL)
                 {
Index: source/Breakpoint/Watchpoint.cpp
===================================================================
--- source/Breakpoint/Watchpoint.cpp
+++ source/Breakpoint/Watchpoint.cpp
@@ -190,9 +190,6 @@
     if (!IsEnabled())
         return false;
 
-    if (GetHitCount() <= GetIgnoreCount())
-        return false;
-
     return true;
 }
 
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to