[Lldb-commits] [lldb] 84b9985 - [lldb] Fix broken bad-address-breakpoint test
Jonas Devlieghere via lldb-commits
lldb-commits at lists.llvm.org
Thu May 26 12:16:16 PDT 2022
Author: Will Hawkins
Date: 2022-05-26T12:16:11-07:00
New Revision: 84b9985f5f63509c3f99e2ebaa488f0a0ef33d49
URL: https://github.com/llvm/llvm-project/commit/84b9985f5f63509c3f99e2ebaa488f0a0ef33d49
DIFF: https://github.com/llvm/llvm-project/commit/84b9985f5f63509c3f99e2ebaa488f0a0ef33d49.diff
LOG: [lldb] Fix broken bad-address-breakpoint test
After changing the "fallback" behavior when a user sets a breakpoint
without specifying a module the bad-address-breakpoint test case failed
incorrectly. This patch updates that test case in order to more
thoroughly discover an illegal address and use that as the means for
testing whether a breakpoint set at an illegal address fails to resolve.
Differential revision: https://reviews.llvm.org/D126109
Added:
Modified:
lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
Removed:
################################################################################
diff --git a/lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py b/lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
index bd3da0f2b427c..cd33ba86eb369 100644
--- a/lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
+++ b/lldb/test/API/functionalities/breakpoint/address_breakpoints/TestBadAddressBreakpoints.py
@@ -27,14 +27,26 @@ def address_breakpoints(self):
"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:
More information about the lldb-commits
mailing list