[Lldb-commits] [PATCH] D73389: [lldb/Breakpoint] Include whether or not a breakpoint is a HW BP

Jonas Devlieghere via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Fri Jan 24 16:09:27 PST 2020


JDevlieghere created this revision.
JDevlieghere added reviewers: LLDB, jingham.
Herald added a project: LLDB.

Include whether or not a breakpoint is a hardware breakpoint in the breakpoint list.

  (lldb) breakpoint list
  Current breakpoints:
  1: name = 'main', locations = 1, resolved = 1, hit count = 0
    1.1: where = a.out`main + 15 at <stdin>:18:10, address = 0x0000000100000f9f, resolved, hardware, hit count = 0
  
  (lldb) breakpoint list -v
  Current breakpoints:
  1: name = 'main'
      1.1:
        module = /Volumes/Jonas/llvm/build-ra/a.out
        compile unit = -
        function = main
        location = /Volumes/Jonas/llvm/build-ra/<stdin>:18:10
        address = 0x0000000100000f9f
        resolved = true
        hardware = true
        hit count = 0


Repository:
  rLLDB LLDB

https://reviews.llvm.org/D73389

Files:
  lldb/include/lldb/Breakpoint/StoppointLocation.h
  lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
  lldb/source/Breakpoint/BreakpointLocation.cpp


Index: lldb/source/Breakpoint/BreakpointLocation.cpp
===================================================================
--- lldb/source/Breakpoint/BreakpointLocation.cpp
+++ lldb/source/Breakpoint/BreakpointLocation.cpp
@@ -597,7 +597,8 @@
     s->EOL();
     s->Indent();
     s->Printf("resolved = %s\n", IsResolved() ? "true" : "false");
-
+    s->Indent();
+    s->Printf("hardware = %s\n", IsHardware() ? "true" : "false");
     s->Indent();
     s->Printf("hit count = %-4u\n", GetHitCount());
 
@@ -608,8 +609,8 @@
     }
     s->IndentLess();
   } else if (level != eDescriptionLevelInitial) {
-    s->Printf(", %sresolved, hit count = %u ", (IsResolved() ? "" : "un"),
-              GetHitCount());
+    s->Printf(", %sresolved, %shit count = %u ", (IsResolved() ? "" : "un"),
+              (IsHardware() ? "hardware, " : ""), GetHitCount());
     if (m_options_up) {
       m_options_up->GetDescription(s, level);
     }
Index: lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
===================================================================
--- lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
+++ lldb/packages/Python/lldbsuite/test/functionalities/breakpoint/hardware_breakpoints/hardware_breakpoint_on_multiple_threads/TestHWBreakMultiThread.py
@@ -84,6 +84,10 @@
                 'hw_break_function',
                 'address = 0x'])
 
+        # Check the breakpoint list.
+        self.expect("breakpoint list", substrs=['hw_break_function', 'hardware'])
+        self.expect("breakpoint list -v", substrs=['function = hw_break_function', 'hardware = true'])
+
         # We should stop in hw_break_function function for 4 threads.
         count = 0
 
Index: lldb/include/lldb/Breakpoint/StoppointLocation.h
===================================================================
--- lldb/include/lldb/Breakpoint/StoppointLocation.h
+++ lldb/include/lldb/Breakpoint/StoppointLocation.h
@@ -41,7 +41,7 @@
   bool HardwareRequired() const { return m_hardware; }
 
   virtual bool IsHardware() const {
-    return m_hardware_index != LLDB_INVALID_INDEX32;
+    return m_hardware;
   }
 
   virtual bool ShouldStop(StoppointCallbackContext *context) { return true; }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D73389.240315.patch
Type: text/x-patch
Size: 2386 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20200125/6af51ce3/attachment.bin>


More information about the lldb-commits mailing list