From 7be3c9b20f3413a885d0ba5428491a4aaae7e799 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Mon, 24 Jul 2023 10:36:37 -0400 Subject: [PATCH] GP-0: Fix DebuggerRegistersProviderGuestTest --- .../gui/register/DebuggerRegistersProvider.java | 16 ++++++++-------- .../register/DebuggerRegistersProviderTest.java | 3 +-- .../database/guest/DBTraceGuestPlatform.java | 6 +++--- 3 files changed, 12 insertions(+), 13 deletions(-) diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java index 345a0f1adf..0906c1312f 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProvider.java @@ -1022,23 +1022,23 @@ public class DebuggerRegistersProvider extends ComponentProviderAdapter return; } TraceMemoryManager mem = current.getTrace().getMemoryManager(); + AddressSetView guestRegs = platform.getLanguage().getRegisterAddresses(); + AddressSetView hostRegs = platform.mapGuestToHost(guestRegs); AddressSetView viewKnownMem = view.getViewport() - .unionedAddresses(snap -> mem.getAddressesWithState(snap, - platform.mapGuestToHost(platform.getLanguage().getRegisterAddresses()), + .unionedAddresses(snap -> mem.getAddressesWithState(snap, hostRegs, state -> state == TraceMemoryState.KNOWN)); - AddressSpace regSpace = current.getPlatform().getAddressFactory().getRegisterSpace(); + AddressSpace regSpace = platform.getAddressFactory().getRegisterSpace(); if (regSpace == null) { viewKnown = new AddressSet(viewKnownMem); return; } - TraceMemorySpace regs = getRegisterMemorySpace(regSpace, false); + TraceMemorySpace regs = getRegisterMemorySpace(current, regSpace, false); if (regs == null) { viewKnown = new AddressSet(viewKnownMem); return; } - AddressSetView hostRegs = - platform.mapGuestToHost(platform.getLanguage().getRegisterAddresses()); - AddressSetView overlayRegs = TraceRegisterUtils.getOverlaySet(regSpace, hostRegs); + AddressSetView overlayRegs = + TraceRegisterUtils.getOverlaySet(regs.getAddressSpace(), hostRegs); AddressSetView viewKnownRegs = view.getViewport() .unionedAddresses(snap -> regs.getAddressesWithState(snap, overlayRegs, state -> state == TraceMemoryState.KNOWN)); @@ -1049,7 +1049,7 @@ public class DebuggerRegistersProvider extends ComponentProviderAdapter if (viewKnown == null) { return false; } - TraceMemorySpace regs = getRegisterMemorySpace(register.getAddressSpace(), false); + TraceMemorySpace regs = getRegisterMemorySpace(current, register.getAddressSpace(), false); if (regs == null && register.getAddressSpace().isRegisterSpace()) { return false; } diff --git a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProviderTest.java b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProviderTest.java index b9dea66529..52d2aa5c04 100644 --- a/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProviderTest.java +++ b/Ghidra/Debug/Debugger/src/test/java/ghidra/app/plugin/core/debug/gui/register/DebuggerRegistersProviderTest.java @@ -320,8 +320,7 @@ public class DebuggerRegistersProviderTest extends AbstractGhidraHeadedDebuggerG waitForSwing(); mb.testBank1.writeRegister("pc", new byte[] { 0x00, 0x40, 0x00, 0x00 }); - waitOn(mb.testModel.flushEvents()); - waitForDomainObject(recorder.getTrace()); + waitRecorder(recorder); RegisterRow rowL = findRegisterRow(pc); waitForPass(() -> assertTrue(rowL.isKnown())); diff --git a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatform.java b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatform.java index ef4b603058..563d8300a7 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatform.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/main/java/ghidra/trace/database/guest/DBTraceGuestPlatform.java @@ -384,14 +384,14 @@ public class DBTraceGuestPlatform extends DBAnnotatedObject while (it.hasNext()) { Pair next = it.next(); DBTraceGuestPlatformMappedRange entry = next.getLeft(); - AddressRange hostRange = next.getRight(); - result.add(entry.mapGuestToHost(hostRange)); + AddressRange guestRange = next.getRight(); + result.add(entry.mapGuestToHost(guestRange)); } return result; } /** - * Map the an address only if the entire range is contained in a single mapped range + * Map an address only if the entire range is contained in a single mapped range * * @param guestMin the min address of the range to map * @param guestMax the max address of the range to check