Permalink
Browse files

Debugger: Consistently handle invalid addresses.

  • Loading branch information...
unknownbrackets committed Apr 24, 2018
1 parent 0b8359f commit 0f84c2e9952c37c752a42133004303035e41e454
Showing with 15 additions and 15 deletions.
  1. +14 −15 Core/Debugger/DisassemblyManager.cpp
  2. +1 −0 Core/MIPS/MIPSAnalyst.cpp
@@ -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";
if (it != entries.end()) {
DisassemblyEntry *entry = it->second;
if (entry->disassemble(address, dest, insertSymbols))
return;
}
}
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 @@ namespace MIPSAnalyst {
memset(&info, 0, sizeof(info));
if (!Memory::IsValidAddress(address)) {
info.opcodeAddress = address;
return info;
}

0 comments on commit 0f84c2e

Please sign in to comment.