Fix ARM9 exceptions displaying ARM11-specific info
This commit is contained in:
parent
348b175994
commit
1e4431dcc9
@ -142,8 +142,8 @@ def main(args=None):
|
|||||||
|
|
||||||
print("Exception type: {0}{1}".format("unknown" if exceptionType >= len(handledExceptionNames) else handledExceptionNames[exceptionType], typeDetailsStr))
|
print("Exception type: {0}{1}".format("unknown" if exceptionType >= len(handledExceptionNames) else handledExceptionNames[exceptionType], typeDetailsStr))
|
||||||
|
|
||||||
xfsr = registers[18] if exceptionType == 2 else registers[17] if exceptionType == 3 else 0
|
if processor == 11 and exceptionType >= 2:
|
||||||
if xfsr != 0:
|
xfsr = registers[18] if exceptionType == 2 else registers[17]
|
||||||
print("Fault status: " + faultStatusSources[xfsr & 0xf])
|
print("Fault status: " + faultStatusSources[xfsr & 0xf])
|
||||||
|
|
||||||
if additionalDataSize != 0:
|
if additionalDataSize != 0:
|
||||||
@ -155,7 +155,7 @@ def main(args=None):
|
|||||||
print(makeRegisterLine(registerNames[i], registers[i], registerNames[i+1], registers[i+1]))
|
print(makeRegisterLine(registerNames[i], registers[i], registerNames[i+1], registers[i+1]))
|
||||||
if nbRegisters % 2 == 1: print("{0:<15}{1:<20}".format(registerNames[nbRegisters - 1], "{0:08x}".format(registers[nbRegisters - 1])))
|
if nbRegisters % 2 == 1: print("{0:<15}{1:<20}".format(registerNames[nbRegisters - 1], "{0:08x}".format(registers[nbRegisters - 1])))
|
||||||
|
|
||||||
if exceptionType == 3:
|
if processor == 11 and exceptionType == 3:
|
||||||
print("{0:<15}{1:<20}Access type: {2}".format("FAR", "{0:08x}".format(registers[19]), "Write" if registers[17] & (1 << 11) != 0 else "Read"))
|
print("{0:<15}{1:<20}Access type: {2}".format("FAR", "{0:08x}".format(registers[19]), "Write" if registers[17] & (1 << 11) != 0 else "Read"))
|
||||||
|
|
||||||
thumb = registers[16] & 0x20 != 0
|
thumb = registers[16] & 0x20 != 0
|
||||||
|
@ -117,7 +117,7 @@ void detectAndProcessExceptionDumps(void)
|
|||||||
else
|
else
|
||||||
posY = drawFormattedString(true, 10, posY + SPACING_Y, COLOR_WHITE, "Exception type: %s", handledExceptionNames[dumpHeader->type]);
|
posY = drawFormattedString(true, 10, posY + SPACING_Y, COLOR_WHITE, "Exception type: %s", handledExceptionNames[dumpHeader->type]);
|
||||||
|
|
||||||
if(dumpHeader->type >= 2)
|
if(dumpHeader->processor == 11 && dumpHeader->type >= 2)
|
||||||
{
|
{
|
||||||
u32 xfsr = (dumpHeader->type == 2 ? regs[18] : regs[17]) & 0xF;
|
u32 xfsr = (dumpHeader->type == 2 ? regs[18] : regs[17]) & 0xF;
|
||||||
|
|
||||||
@ -144,7 +144,7 @@ void detectAndProcessExceptionDumps(void)
|
|||||||
posY = drawFormattedString(true, 10 + 22 * SPACING_X, posY, COLOR_WHITE, "%-7s%08X", registerNames[i + 1], regs[20]);
|
posY = drawFormattedString(true, 10 + 22 * SPACING_X, posY, COLOR_WHITE, "%-7s%08X", registerNames[i + 1], regs[20]);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(dumpHeader->type == 3)
|
if(dumpHeader->processor == 11 && dumpHeader->type == 3)
|
||||||
posY = drawFormattedString(true, 10, posY + SPACING_Y, COLOR_WHITE, "%-7s%08X Access type: %s", "FAR", regs[19], regs[17] & (1u << 11) ? "Write" : "Read");
|
posY = drawFormattedString(true, 10, posY + SPACING_Y, COLOR_WHITE, "%-7s%08X Access type: %s", "FAR", regs[19], regs[17] & (1u << 11) ? "Write" : "Read");
|
||||||
|
|
||||||
posY += SPACING_Y;
|
posY += SPACING_Y;
|
||||||
|
Reference in New Issue
Block a user