[Lldb-commits] [PATCH] D126109: [lldb] Fix broken bad-address-breakpoint test

Will Hawkins via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed May 25 22:35:14 PDT 2022


hawkinsw updated this revision to Diff 432192.
hawkinsw added a comment.

Updating the revision to consider feedback (!= None vs is not None)


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126109/new/

https://reviews.llvm.org/D126109

Files:
  lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py


Index: lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
===================================================================
--- lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
+++ lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
@@ -27,14 +27,26 @@
                                               "Set a breakpoint here",
                                               lldb.SBFileSpec("main.c"))
 
-        # Now see if we can read from 0.  If I can't do that, I don't
-        # have a good way to know what an illegal address is...
-        error = lldb.SBError()
 
-        ptr = process.ReadPointerFromMemory(0x0, error)
 
-        if not error.Success():
-            bkpt = target.BreakpointCreateByAddress(0x0)
+        # illegal_address will hold (optionally) an address that, if
+        # used as a breakpoint, will generate an unresolved breakpoint.
+        illegal_address = None
+
+        # Walk through all the memory regions in the process and
+        # find an address that is invalid.
+        regions = process.GetMemoryRegions()
+        for region_idx in range(regions.GetSize()):
+            region = lldb.SBMemoryRegionInfo()
+            regions.GetMemoryRegionAtIndex(region_idx, region)
+            if illegal_address == None or \
+                region.GetRegionEnd() > illegal_address:
+                illegal_address = region.GetRegionEnd()
+
+        if illegal_address is not None:
+            # Now, set a breakpoint at the address we know is illegal.
+            bkpt = target.BreakpointCreateByAddress(illegal_address)
+            # Verify that breakpoint is not resolved.
             for bp_loc in bkpt:
                 self.assertEquals(bp_loc.IsResolved(), False)
         else:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D126109.432192.patch
Type: text/x-patch
Size: 1850 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220526/370c4cfc/attachment.bin>


More information about the lldb-commits mailing list