Merge remote-tracking branch 'origin/GP-6257_d-millar_search_memory'

This commit is contained in:
Ryan Kurtz
2025-12-22 11:06:21 -05:00

View File

@@ -39,14 +39,15 @@ public enum DebuggerSearchRegionFactory {
return set;
}
},
VALID("Valid Addresses", """
Searches listed memory regions in the space.""") {
READABLE("Readable Addresses", """
Searches listed regions marked as readable in the space.""") {
@Override
AddressSetView getAddresses(AddressSpace space, Program program) {
AddressSet set = new AddressSet();
for (MemoryBlock block : program.getMemory().getBlocks()) {
if (space == null || space == block.getStart().getAddressSpace()) {
if (block.isRead() &&
(space == null || space == block.getStart().getAddressSpace())) {
set.add(block.getAddressRange());
}
}
@@ -72,6 +73,21 @@ public enum DebuggerSearchRegionFactory {
}
return set;
}
},
EXECUTABLE("Executable Addresses", """
Searches listed regions marked as executable in the space.""") {
@Override
AddressSetView getAddresses(AddressSpace space, Program program) {
AddressSet set = new AddressSet();
for (MemoryBlock block : program.getMemory().getBlocks()) {
if (block.isExecute() &&
(space == null || space == block.getStart().getAddressSpace())) {
set.add(block.getAddressRange());
}
}
return set;
}
};
public static final List<DebuggerSearchRegionFactory> ALL = List.of(values());