Debugger: minor stop-reason refactor

This commit is contained in:
tomcw 2022-03-02 21:25:04 +00:00
parent dfb8802763
commit 648f832647

View File

@ -8411,35 +8411,32 @@ void DebugContinueStepping(const bool bCallerWillUpdateDisplay/*=false*/)
if (regs.pc == g_nDebugStepUntil || g_bDebugBreakpointHit) if (regs.pc == g_nDebugStepUntil || g_bDebugBreakpointHit)
{ {
std::string strStopMessage; std::string stopReason = "Unknown!";
const char* pszStopReason = "";
if (regs.pc == g_nDebugStepUntil) if (regs.pc == g_nDebugStepUntil)
pszStopReason = "PC matches 'Go until' address"; stopReason = "PC matches 'Go until' address";
else if (g_bDebugBreakpointHit & BP_HIT_INVALID) else if (g_bDebugBreakpointHit & BP_HIT_INVALID)
pszStopReason = "Invalid opcode"; stopReason = "Invalid opcode";
else if (g_bDebugBreakpointHit & BP_HIT_OPCODE) else if (g_bDebugBreakpointHit & BP_HIT_OPCODE)
pszStopReason = "Opcode match"; stopReason = "Opcode match";
else if (g_bDebugBreakpointHit & BP_HIT_REG) else if (g_bDebugBreakpointHit & BP_HIT_REG)
pszStopReason = "Register matches value"; stopReason = "Register matches value";
else if (g_bDebugBreakpointHit & BP_HIT_MEM) else if (g_bDebugBreakpointHit & BP_HIT_MEM)
pszStopReason = (strStopMessage = StrFormat("Memory access at $%04X", g_uBreakMemoryAddress)).c_str(); stopReason = StrFormat("Memory access at $%04X", g_uBreakMemoryAddress);
else if (g_bDebugBreakpointHit & BP_HIT_MEMW) else if (g_bDebugBreakpointHit & BP_HIT_MEMW)
pszStopReason = (strStopMessage = StrFormat("Write access at $%04X", g_uBreakMemoryAddress)).c_str(); stopReason = StrFormat("Write access at $%04X", g_uBreakMemoryAddress);
else if (g_bDebugBreakpointHit & BP_HIT_MEMR) else if (g_bDebugBreakpointHit & BP_HIT_MEMR)
pszStopReason = (strStopMessage = StrFormat("Read access at $%04X", g_uBreakMemoryAddress)).c_str(); stopReason = StrFormat("Read access at $%04X", g_uBreakMemoryAddress);
else if (g_bDebugBreakpointHit & BP_HIT_PC_READ_FLOATING_BUS_OR_IO_MEM) else if (g_bDebugBreakpointHit & BP_HIT_PC_READ_FLOATING_BUS_OR_IO_MEM)
pszStopReason = "PC reads from floating bus or I/O memory"; stopReason = "PC reads from floating bus or I/O memory";
else if (g_bDebugBreakpointHit & BP_HIT_INTERRUPT) else if (g_bDebugBreakpointHit & BP_HIT_INTERRUPT)
pszStopReason = (strStopMessage = StrFormat("Interrupt occurred at $%04X", g_LBR)).c_str(); stopReason = StrFormat("Interrupt occurred at $%04X", g_LBR);
else if (g_bDebugBreakpointHit & BP_DMA_TO_IO_MEM) else if (g_bDebugBreakpointHit & BP_DMA_TO_IO_MEM)
pszStopReason = (strStopMessage = StrFormat("HDD DMA to I/O memory or ROM $%04X", g_uDebugBreakOnDmaIoMemoryAddr)).c_str(); stopReason = StrFormat("HDD DMA to I/O memory or ROM $%04X", g_uDebugBreakOnDmaIoMemoryAddr);
else if (g_bDebugBreakpointHit & BP_DMA_FROM_IO_MEM) else if (g_bDebugBreakpointHit & BP_DMA_FROM_IO_MEM)
pszStopReason = (strStopMessage = StrFormat("HDD DMA from I/O memory $%04X", g_uDebugBreakOnDmaIoMemoryAddr)).c_str(); stopReason = StrFormat("HDD DMA from I/O memory $%04X", g_uDebugBreakOnDmaIoMemoryAddr);
else
pszStopReason = "Unknown!";
ConsoleBufferPushFormat( "Stop reason: %s", pszStopReason ); ConsoleBufferPushFormat( "Stop reason: %s", stopReason.c_str() );
ConsoleUpdate(); ConsoleUpdate();
g_nDebugSteps = 0; g_nDebugSteps = 0;