mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-03-03 11:37:20 +00:00
Debugger: Consistently handle invalid addresses.
This commit is contained in:
parent
0b8359fd77
commit
0f84c2e995
@ -244,29 +244,28 @@ void DisassemblyManager::getLine(u32 address, bool insertSymbols, DisassemblyLin
|
||||
{
|
||||
analyze(address);
|
||||
it = findDisassemblyEntry(entries,address,false);
|
||||
|
||||
if (it == entries.end())
|
||||
{
|
||||
if (address % 4)
|
||||
dest.totalSize = ((address+3) & ~3)-address;
|
||||
else
|
||||
dest.totalSize = 4;
|
||||
dest.name = "ERROR";
|
||||
dest.params = "Disassembly failure";
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
DisassemblyEntry* entry = it->second;
|
||||
if (entry->disassemble(address,dest,insertSymbols))
|
||||
return;
|
||||
|
||||
if (it != entries.end()) {
|
||||
DisassemblyEntry *entry = it->second;
|
||||
if (entry->disassemble(address, dest, insertSymbols))
|
||||
return;
|
||||
}
|
||||
|
||||
dest.type = DISTYPE_OTHER;
|
||||
memset(&dest.info, 0, sizeof(dest.info));
|
||||
dest.info.opcodeAddress = address;
|
||||
if (address % 4)
|
||||
dest.totalSize = ((address+3) & ~3)-address;
|
||||
else
|
||||
dest.totalSize = 4;
|
||||
dest.name = "ERROR";
|
||||
dest.params = "Disassembly failure";
|
||||
if (Memory::IsValidRange(address, 4)) {
|
||||
dest.name = "ERROR";
|
||||
dest.params = "Disassembly failure";
|
||||
} else {
|
||||
dest.name = "-";
|
||||
dest.params = "";
|
||||
}
|
||||
}
|
||||
|
||||
u32 DisassemblyManager::getStartAddress(u32 address)
|
||||
|
@ -1415,6 +1415,7 @@ skip:
|
||||
memset(&info, 0, sizeof(info));
|
||||
|
||||
if (!Memory::IsValidAddress(address)) {
|
||||
info.opcodeAddress = address;
|
||||
return info;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user