Added symbolic debug replacement functionality during disassembly on Qt trace logger.
This commit is contained in:
parent
cde409dece
commit
130547fa89
|
@ -25,6 +25,7 @@
|
||||||
#include "Qt/dface.h"
|
#include "Qt/dface.h"
|
||||||
#include "Qt/input.h"
|
#include "Qt/input.h"
|
||||||
#include "Qt/config.h"
|
#include "Qt/config.h"
|
||||||
|
#include "Qt/SymbolicDebug.h"
|
||||||
#include "Qt/fceuWrapper.h"
|
#include "Qt/fceuWrapper.h"
|
||||||
|
|
||||||
#define LOG_REGISTERS 0x00000001
|
#define LOG_REGISTERS 0x00000001
|
||||||
|
@ -917,8 +918,10 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
|
||||||
|
|
||||||
traceRecord_t rec;
|
traceRecord_t rec;
|
||||||
|
|
||||||
|
char asmTxt[256];
|
||||||
unsigned int addr = X.PC;
|
unsigned int addr = X.PC;
|
||||||
static int unloggedlines = 0;
|
static int unloggedlines = 0;
|
||||||
|
int asmFlags = 0;
|
||||||
|
|
||||||
rec.cpu.PC = X.PC;
|
rec.cpu.PC = X.PC;
|
||||||
rec.cpu.A = X.A;
|
rec.cpu.A = X.A;
|
||||||
|
@ -946,6 +949,11 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
|
||||||
}
|
}
|
||||||
rec.cycleCount = counter_value;
|
rec.cycleCount = counter_value;
|
||||||
|
|
||||||
|
if ( logging_options & LOG_SYMBOLIC )
|
||||||
|
{
|
||||||
|
asmFlags = ASM_DEBUG_SYMS | ASM_DEBUG_REGS;
|
||||||
|
}
|
||||||
|
|
||||||
// if instruction executed from the RAM, skip this, log all instead
|
// if instruction executed from the RAM, skip this, log all instead
|
||||||
// TODO: loops folding mame-lyke style
|
// TODO: loops folding mame-lyke style
|
||||||
if (rec.romAddr != -1)
|
if (rec.romAddr != -1)
|
||||||
|
@ -994,7 +1002,7 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
a = Disassemble(addr + 1, opcode);
|
DisassembleWithDebug(addr + 1, opcode, asmFlags, asmTxt);
|
||||||
// special case: an RTS opcode
|
// special case: an RTS opcode
|
||||||
if (opcode[0] == 0x60)
|
if (opcode[0] == 0x60)
|
||||||
{
|
{
|
||||||
|
@ -1007,13 +1015,16 @@ void FCEUD_TraceInstruction(uint8 *opcode, int size)
|
||||||
rec.callAddr = call_addr;
|
rec.callAddr = call_addr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
a = asmTxt;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
a = Disassemble(addr + 2, opcode);
|
DisassembleWithDebug(addr + 2, opcode, asmFlags, asmTxt);
|
||||||
|
a = asmTxt;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
a = Disassemble(addr + 3, opcode);
|
DisassembleWithDebug(addr + 3, opcode, asmFlags, asmTxt);
|
||||||
|
a = asmTxt;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue