Debugger: Consistently handle invalid addresses.
This commit is contained in:
parent
0b8359fd77
commit
0f84c2e995
2 changed files with 17 additions and 17 deletions
|
@ -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…
Add table
Add a link
Reference in a new issue