From 71548dd8aa8b29899356fe1dc8435cffa43cbb97 Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Fri, 20 Dec 2024 14:25:11 -0500 Subject: [PATCH] GP-5180: Fix auto memory read without regions (Force Full View) --- .../core/debug/service/tracermi/TraceRmiTarget.java | 9 +++++++++ .../debug/gui/listing/DebuggerListingProviderTest.java | 7 +++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java b/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java index 93547415a1..9dbc95db5a 100644 --- a/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java +++ b/Ghidra/Debug/Debugger-rmi-trace/src/main/java/ghidra/app/plugin/core/debug/service/tracermi/TraceRmiTarget.java @@ -976,6 +976,15 @@ public class TraceRmiTarget extends AbstractTarget { } protected TraceObject getProcessForSpace(AddressSpace space) { + List processes = trace.getObjectManager() + .queryAllInterface(Lifespan.at(getSnap()), TraceObjectProcess.class) + .toList(); + if (processes.size() == 1) { + return processes.get(0).getObject(); + } + if (processes.isEmpty()) { + return null; + } for (TraceMemoryRegion region : trace.getMemoryManager() .getRegionsIntersecting( Lifespan.at(getSnap()), diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProviderTest.java b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProviderTest.java index 63d7101fc0..c3dd9d99d6 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProviderTest.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/test/java/ghidra/app/plugin/core/debug/gui/listing/DebuggerListingProviderTest.java @@ -25,7 +25,8 @@ import java.math.BigInteger; import java.nio.ByteBuffer; import java.util.Set; -import org.junit.*; +import org.junit.Before; +import org.junit.Test; import org.junit.experimental.categories.Category; import db.Transaction; @@ -731,7 +732,7 @@ public class DebuggerListingProviderTest extends AbstractGhidraHeadedDebuggerInt runSwing(() -> tb.trace.getProgramView().getMemory().setForceFullView(true)); - goToDyn(tb.addr(0x55550000)); + goToDyn(tb.addr(0x55550800)); runSwing(() -> listingProvider.setAutoReadMemorySpec(spec)); handleReadMemInvocation(process, tb.range(0x55550000, 0x55550fff)); @@ -742,13 +743,11 @@ public class DebuggerListingProviderTest extends AbstractGhidraHeadedDebuggerInt } @Test - @Ignore("Until GP-5180") public void testAutoReadMemoryVisROOnceReadsWithForceFullView() throws Throwable { runTestAutoReadMemoryReadsWithForceFullView(readVisROOnce); } @Test - @Ignore("Until GP-5180") public void testAutoReadMemoryVisibleReadsWithForceFullView() throws Throwable { runTestAutoReadMemoryReadsWithForceFullView(readVisible); }