mirror of
https://github.com/libretro/ppsspp.git
synced 2025-03-03 14:09:45 +00:00
Handle it better when viewing an invalid addr.
This commit is contained in:
parent
1cd9f01358
commit
0c03dc2dec
@ -1065,9 +1065,10 @@ std::vector<GPUDebugOp> GPUCommon::DissassembleOpRange(u32 startpc, u32 endpc) {
|
||||
std::vector<GPUDebugOp> result;
|
||||
GPUDebugOp info;
|
||||
|
||||
u32 prev = Memory::Read_U32(startpc - 4);
|
||||
// Don't trigger a pause.
|
||||
u32 prev = Memory::IsValidAddress(startpc - 4) ? Memory::Read_U32(startpc - 4) : 0;
|
||||
for (u32 pc = startpc; pc < endpc; pc += 4) {
|
||||
u32 op = Memory::Read_U32(pc);
|
||||
u32 op = Memory::IsValidAddress(pc) ? Memory::Read_U32(pc) : 0;
|
||||
GeDisassembleOp(pc, op, prev, buffer);
|
||||
prev = op;
|
||||
|
||||
|
@ -167,6 +167,8 @@ void CtrlDisplayListView::onPaint(WPARAM wParam, LPARAM lParam)
|
||||
|
||||
HICON breakPoint = (HICON)LoadIcon(GetModuleHandle(0),(LPCWSTR)IDI_STOP);
|
||||
|
||||
auto disasm = gpuDebug->DissassembleOpRange(windowStart, windowStart + (visibleRows + 2) * instructionSize);
|
||||
|
||||
for (int i = 0; i < visibleRows+2; i++)
|
||||
{
|
||||
unsigned int address=windowStart + i*instructionSize;
|
||||
@ -211,7 +213,7 @@ void CtrlDisplayListView::onPaint(WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
SetTextColor(hdc,textColor);
|
||||
|
||||
GPUDebugOp op = gpuDebug->DissassembleOp(address);
|
||||
GPUDebugOp op = i < (int)disasm.size() ? disasm[i] : GPUDebugOp();
|
||||
|
||||
char addressText[64];
|
||||
sprintf(addressText,"%08X %08X",op.pc,op.op);
|
||||
|
Loading…
x
Reference in New Issue
Block a user