From e914b126db32b9c9ce8ab290a66bfb7541efc79f Mon Sep 17 00:00:00 2001 From: Dan <46821332+nsadeveloper789@users.noreply.github.com> Date: Mon, 22 Apr 2024 15:46:41 -0400 Subject: [PATCH] GP-4528: Fix byte values in trace diff view --- .../DBTraceProgramViewListingTest.java | 24 +++++++- .../program/DBTraceProgramViewMemoryTest.java | 57 ++++++++++++------ .../util/viewer/field/BytesFieldFactory.java | 42 ++++--------- .../TutorialDebuggerScreenShots.java | 2 +- .../images/Navigation_CompareTimes.png | Bin 33879 -> 34001 bytes 5 files changed, 70 insertions(+), 55 deletions(-) diff --git a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewListingTest.java b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewListingTest.java index b1e77af6f1..fc14824c86 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewListingTest.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewListingTest.java @@ -15,7 +15,7 @@ */ package ghidra.trace.database.program; -import static ghidra.lifecycle.Unfinished.*; +import static ghidra.lifecycle.Unfinished.TODO; import static org.junit.Assert.*; import java.io.IOException; @@ -42,8 +42,8 @@ public class DBTraceProgramViewListingTest extends AbstractGhidraHeadlessIntegra ToyDBTraceBuilder b; - DBTraceProgramView view; - DBTraceProgramViewListing listing; // TODO: Do I want to expose the internal types? + DBTraceVariableSnapProgramView view; + DBTraceProgramViewListing listing; DBTraceMemoryManager memory; DBTraceCodeManager code; @@ -878,4 +878,22 @@ public class DBTraceProgramViewListingTest extends AbstractGhidraHeadlessIntegra assertEquals(i4005, listing.getDefinedCodeUnitBefore(b.addr(0x4006))); assertEquals(d4000, listing.getDefinedCodeUnitBefore(b.addr(0x4005))); } + + @Test + public void testGetCodeUnitsInTwoViews() throws Throwable { + try (Transaction tx = b.startTransaction()) { + memory.putBytes(0, b.addr(0x00400000), b.buf(1, 2, 3, 4, 5, 6, 7, 8)); + memory.putBytes(1, b.addr(0x00400000), b.buf(8, 7, 6, 5, 4, 3, 2, 1)); + } + + view.setSnap(1); + DBTraceProgramView view0 = b.trace.getFixedProgramView(0); + DBTraceProgramViewListing listing0 = view0.getListing(); + + CodeUnit cu0 = listing0.getCodeUnitAt(b.addr(0x00400000)); + CodeUnit cu1 = listing.getCodeUnitAt(b.addr(0x00400000)); + + assertArrayEquals(b.arr(1), cu0.getBytes()); + assertArrayEquals(b.arr(8), cu1.getBytes()); + } } diff --git a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewMemoryTest.java b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewMemoryTest.java index 1634f99b30..34c21ce57a 100644 --- a/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewMemoryTest.java +++ b/Ghidra/Debug/Framework-TraceModeling/src/test/java/ghidra/trace/database/program/DBTraceProgramViewMemoryTest.java @@ -23,7 +23,8 @@ import org.junit.*; import db.Transaction; import ghidra.program.database.ProgramBuilder; -import ghidra.program.model.address.*; +import ghidra.program.model.address.AddressSet; +import ghidra.program.model.address.AddressSpace; import ghidra.program.model.lang.LanguageNotFoundException; import ghidra.program.model.mem.MemoryBlock; import ghidra.test.AbstractGhidraHeadlessIntegrationTest; @@ -31,50 +32,47 @@ import ghidra.trace.database.ToyDBTraceBuilder; import ghidra.trace.database.memory.DBTraceMemoryManager; import ghidra.trace.database.memory.DBTraceMemoryRegion; import ghidra.trace.model.memory.TraceMemoryFlag; -import ghidra.trace.model.memory.TraceOverlappedRegionException; -import ghidra.util.exception.DuplicateNameException; public class DBTraceProgramViewMemoryTest extends AbstractGhidraHeadlessIntegrationTest { - ToyDBTraceBuilder b; + ToyDBTraceBuilder tb; - DBTraceProgramView view; + DBTraceVariableSnapProgramView view; DBTraceProgramViewMemory vmem; DBTraceMemoryManager memory; @Before public void setUpTraceProgramViewMemoryTest() throws LanguageNotFoundException, IOException { - b = new ToyDBTraceBuilder("Testing", ProgramBuilder._TOY64_BE); - try (Transaction tx = b.startTransaction()) { - b.trace.getTimeManager().createSnapshot("Created"); + tb = new ToyDBTraceBuilder("Testing", ProgramBuilder._TOY64_BE); + try (Transaction tx = tb.startTransaction()) { + tb.trace.getTimeManager().createSnapshot("Created"); } - memory = b.trace.getMemoryManager(); + memory = tb.trace.getMemoryManager(); // NOTE: First snap has to exist first - view = b.trace.getProgramView(); + view = tb.trace.getProgramView(); vmem = view.getMemory(); } @After public void tearDownTraceProgramViewListingTest() { - if (b != null) { - b.close(); + if (tb != null) { + tb.close(); } } @Test - public void testBlockInOverlay() throws DuplicateNameException, TraceOverlappedRegionException, - AddressOutOfBoundsException { + public void testBlockInOverlay() throws Throwable { AddressSpace os; DBTraceMemoryRegion io; - try (Transaction tx = b.startTransaction()) { + try (Transaction tx = tb.startTransaction()) { os = memory.createOverlayAddressSpace("test", - b.trace.getBaseAddressFactory().getDefaultAddressSpace()); - io = (DBTraceMemoryRegion) memory.createRegion(".io", 0, b.range(os, 0x1000, 0x1fff), + tb.trace.getBaseAddressFactory().getDefaultAddressSpace()); + io = (DBTraceMemoryRegion) memory.createRegion(".io", 0, tb.range(os, 0x1000, 0x1fff), TraceMemoryFlag.READ, TraceMemoryFlag.WRITE, TraceMemoryFlag.VOLATILE); } AddressSet asSet = new AddressSet(vmem); - assertEquals(b.set(b.range(os, 0x1000, 0x1fff)), asSet); + assertEquals(tb.set(tb.range(os, 0x1000, 0x1fff)), asSet); MemoryBlock[] blocks = vmem.getBlocks(); assertEquals(1, blocks.length); @@ -82,7 +80,26 @@ public class DBTraceProgramViewMemoryTest extends AbstractGhidraHeadlessIntegrat MemoryBlock blk = blocks[0]; assertSame(blk, vmem.getRegionBlock(io)); assertEquals(".io", blk.getName()); - assertEquals(b.addr(os, 0x1000), blk.getStart()); - assertEquals(b.addr(os, 0x1fff), blk.getEnd()); + assertEquals(tb.addr(os, 0x1000), blk.getStart()); + assertEquals(tb.addr(os, 0x1fff), blk.getEnd()); + } + + @Test + public void testBytesInTwoViews() throws Throwable { + try (Transaction tx = tb.startTransaction()) { + memory.putBytes(0, tb.addr(0x00400000), tb.buf(1, 2, 3, 4, 5, 6, 7, 8)); + memory.putBytes(1, tb.addr(0x00400000), tb.buf(8, 7, 6, 5, 4, 3, 2, 1)); + } + + view.setSnap(1); + DBTraceProgramView view0 = tb.trace.getFixedProgramView(0); + + byte[] actual = new byte[8]; + + view0.getMemory().getBytes(tb.addr(0x00400000), actual); + assertArrayEquals(tb.arr(1, 2, 3, 4, 5, 6, 7, 8), actual); + + view.getMemory().getBytes(tb.addr(0x00400000), actual); + assertArrayEquals(tb.arr(8, 7, 6, 5, 4, 3, 2, 1), actual); } } diff --git a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/BytesFieldFactory.java b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/BytesFieldFactory.java index 03f19213b4..d29daa81f2 100644 --- a/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/BytesFieldFactory.java +++ b/Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/BytesFieldFactory.java @@ -24,6 +24,8 @@ package ghidra.app.util.viewer.field; import java.awt.Color; import java.math.BigInteger; +import org.apache.commons.lang3.ArrayUtils; + import docking.widgets.fieldpanel.field.*; import docking.widgets.fieldpanel.support.FieldLocation; import docking.widgets.fieldpanel.support.RowColLocation; @@ -35,8 +37,6 @@ import ghidra.framework.options.ToolOptions; import ghidra.program.model.data.DataType; import ghidra.program.model.data.Structure; import ghidra.program.model.listing.*; -import ghidra.program.model.mem.Memory; -import ghidra.program.model.mem.MemoryAccessException; import ghidra.program.util.BytesFieldLocation; import ghidra.program.util.ProgramLocation; import ghidra.util.HelpLocation; @@ -168,45 +168,25 @@ public class BytesFieldFactory extends FieldFactory { @Override public ListingField getField(ProxyObj proxy, int varWidth) { - Object obj = proxy.getObject(); - if (!enabled || !(obj instanceof CodeUnit)) { + if (!enabled || !(proxy.getObject() instanceof CodeUnit cu)) { return null; } - CodeUnit cu = (CodeUnit) obj; - int length; - // Instructions: use prototype length so we display all bytes for length-override case - if (cu instanceof Instruction) { - // Consider all parsed bytes even if the overlap the next instruction due to the - // use of an instruction length-override. - length = ((Instruction) cu).getParsedLength(); - } - else { - length = Math.min(cu.getLength(), 100); - } + // Consider all parsed bytes even if the overlap the next instruction due to the + // use of an instruction length-override. + final int arrLength = + cu instanceof Instruction ins ? ins.getParsedLength() : Math.min(cu.getLength(), 100); - byte[] bytes = new byte[length]; - Memory memory = cu.getProgram().getMemory(); - try { - length = memory.getBytes(cu.getAddress(), bytes); - } - catch (MemoryAccessException e) { - return null; - } + byte[] bytes = new byte[arrLength]; + final int length = cu.getBytes(bytes, 0); if (length == 0) { return null; } - if ((cu instanceof Instruction) && reverseInstByteOrdering && !memory.isBigEndian()) { - int i = 0; - int j = length - 1; - while (j > i) { - byte b = bytes[i]; - bytes[i++] = bytes[j]; - bytes[j--] = b; - } + if ((cu instanceof Instruction) && reverseInstByteOrdering && !cu.isBigEndian()) { + ArrayUtils.reverse(bytes); } int groupLength = length / byteGroupSize; diff --git a/Ghidra/Test/DebuggerIntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java b/Ghidra/Test/DebuggerIntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java index 168d6078de..fe8982df4d 100644 --- a/Ghidra/Test/DebuggerIntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java +++ b/Ghidra/Test/DebuggerIntegrationTest/src/screen/java/ghidraclass/debugger/screenshot/TutorialDebuggerScreenShots.java @@ -691,7 +691,7 @@ public class TutorialDebuggerScreenShots extends GhidraScreenShotGenerator }); waitForCondition(() -> actionNextDiff.isEnabled()); flatDbg.goToDynamic(secTermminesData.getStart()); - // Because auto-strack is a little broken right now + // Because auto-track is a little broken right now Thread.sleep(500); flatDbg.goToDynamic(secTermminesData.getStart()); diff --git a/GhidraDocs/GhidraClass/Debugger/images/Navigation_CompareTimes.png b/GhidraDocs/GhidraClass/Debugger/images/Navigation_CompareTimes.png index c07f48cff7ff2a17652f18cc9a6038b49b2f4e77..6ce0e54c9dd83cf272a149e8dddfe1b4aea698d4 100644 GIT binary patch literal 34001 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 Usj)*HDBh}5Cl#a;PG~#+53CW^#sB~S literal 33879 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 a$lo>01d-qAZ-P{QgZSCYV)19x?EVYw=RQjS