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:
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:
_______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits