[Lldb-commits] [PATCH] D126109: [lldb] Fix broken bad-address-breakpoint test
Will Hawkins via Phabricator via lldb-commits
lldb-commits at lists.llvm.org
Fri May 20 19:01:31 PDT 2022
hawkinsw created this revision.
hawkinsw added reviewers: teemperor, JDevlieghere.
Herald added a project: All.
hawkinsw requested review of this revision.
Herald added a project: LLDB.
Herald added a subscriber: lldb-commits.
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.
Repository:
rG LLVM Github Monorepo
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,25 @@
"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...
+
+
+ illegal_address = 0x0
error = lldb.SBError()
- ptr = process.ReadPointerFromMemory(0x0, error)
+ # Walk through all the memory regions in the process and
+ # find an address that is invalid.
+ ptr = process.ReadPointerFromMemory(illegal_address, error)
+ regions = process.GetMemoryRegions()
+ for region_idx in range(regions.GetSize()):
+ region = lldb.SBMemoryRegionInfo()
+ regions.GetMemoryRegionAtIndex(region_idx, region)
+ if region.GetRegionEnd() > illegal_address:
+ illegal_address = region.GetRegionEnd()
if not error.Success():
- bkpt = target.BreakpointCreateByAddress(0x0)
+ # 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.431113.patch
Type: text/x-patch
Size: 1688 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/lldb-commits/attachments/20220521/97364c6a/attachment-0001.bin>
More information about the lldb-commits
mailing list