mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 10:49:34 +02:00
Merge remote-tracking branch 'origin/GP-1426_Dan_asmWoW64--SQUASHED'
This commit is contained in:
commit
4f59e90b39
114 changed files with 4968 additions and 1820 deletions
|
@ -38,6 +38,7 @@ import ghidra.program.model.lang.*;
|
|||
import ghidra.program.model.listing.Instruction;
|
||||
import ghidra.test.AbstractGhidraHeadlessIntegrationTest;
|
||||
import ghidra.trace.database.ToyDBTraceBuilder;
|
||||
import ghidra.trace.database.context.DBTraceRegisterContextManager;
|
||||
import ghidra.trace.model.memory.TraceMemoryFlag;
|
||||
import ghidra.trace.model.memory.TraceMemoryManager;
|
||||
import ghidra.trace.model.thread.TraceThread;
|
||||
|
@ -864,17 +865,13 @@ public class TracePcodeEmulatorTest extends AbstractGhidraHeadlessIntegrationTes
|
|||
try (ToyDBTraceBuilder tb = new ToyDBTraceBuilder("Test", "x86:LE:64:default")) {
|
||||
Language lang = tb.trace.getBaseLanguage();
|
||||
Register ctxReg = lang.getContextBaseRegister();
|
||||
Register opsizeReg = lang.getRegister("opsize");
|
||||
Register addrsizeReg = lang.getRegister("addrsize");
|
||||
Register longModeReg = lang.getRegister("longMode");
|
||||
RegisterValue ctxVal = new RegisterValue(ctxReg)
|
||||
.assign(opsizeReg, BigInteger.ONE)
|
||||
.assign(addrsizeReg, BigInteger.ONE)
|
||||
.assign(longModeReg, BigInteger.ZERO);
|
||||
DBTraceRegisterContextManager ctxManager = tb.trace.getRegisterContextManager();
|
||||
try (UndoableTransaction tid = tb.startTransaction()) {
|
||||
tb.trace.getRegisterContextManager()
|
||||
.setValue(lang, ctxVal, Range.atLeast(0L),
|
||||
tb.range(0x00400000, 0x00400002));
|
||||
ctxManager.setValue(lang, ctxVal, Range.atLeast(0L),
|
||||
tb.range(0x00400000, 0x00400002));
|
||||
}
|
||||
TraceThread thread = initTrace(tb,
|
||||
List.of(
|
||||
|
@ -891,6 +888,8 @@ public class TracePcodeEmulatorTest extends AbstractGhidraHeadlessIntegrationTes
|
|||
|
||||
TracePcodeEmulator emu = new TracePcodeEmulator(tb.trace, 0);
|
||||
PcodeThread<byte[]> emuThread = emu.newThread(thread.getPath());
|
||||
// TODO: Seems the Trace-bound thread ought to know to do this in reInitialize()
|
||||
ctxVal = ctxManager.getValueWithDefault(lang, ctxReg, 0, tb.addr(0x00400000));
|
||||
emuThread.overrideContext(ctxVal);
|
||||
emuThread.stepInstruction();
|
||||
emuThread.stepInstruction();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue