Print NTSTATUS value in info box
This commit is contained in:
parent
c3642c35be
commit
f3cb3443d1
|
@ -288,20 +288,15 @@ void CPUInfoBox::disasmSelectionChanged(duint parVA)
|
|||
}
|
||||
else
|
||||
{
|
||||
QString valText;
|
||||
auto symbolicName = getSymbolicNameStr(arg.value);
|
||||
if(!symbolicName.contains(valText))
|
||||
valText = QString("%1 (%2)").arg(symbolicName, valText);
|
||||
else
|
||||
valText = symbolicName;
|
||||
QString valText = getSymbolicNameStr(arg.value);
|
||||
QString mnemonic(arg.mnemonic);
|
||||
bool ok;
|
||||
mnemonic.toULongLong(&ok, 16);
|
||||
if(ok) //skip certain numbers
|
||||
{
|
||||
if(ToHexString(arg.value) == symbolicName)
|
||||
if(ToHexString(arg.value) == valText)
|
||||
continue;
|
||||
setInfoLine(j, symbolicName);
|
||||
setInfoLine(j, valText);
|
||||
}
|
||||
else if(!mnemonic.startsWith("xmm") &&
|
||||
!mnemonic.startsWith("ymm") &&
|
||||
|
|
|
@ -144,6 +144,8 @@ QString getSymbolicNameStr(duint addr)
|
|||
finalText = QString("%1.%2").arg(moduleText).arg(addrText);
|
||||
else if(bHasLabel) //<label>
|
||||
finalText = QString("<%1>").arg(labelText);
|
||||
else if(addr == 0)
|
||||
finalText = addrText;
|
||||
else
|
||||
{
|
||||
finalText = addrText;
|
||||
|
@ -159,6 +161,18 @@ QString getSymbolicNameStr(duint addr)
|
|||
if(c.isPrint() || c.isSpace())
|
||||
finalText += QString(" L'%1'").arg(EscapeCh(c));
|
||||
}
|
||||
else if((addr & 0xFFFFFFFFF0000000ull) == 0xC0000000)
|
||||
{
|
||||
auto format = QString("{ntstatus@%1}").arg(ToHexString(addr));
|
||||
if(DbgFunctions()->StringFormatInline(format.toUtf8().constData(), sizeof(string), string))
|
||||
{
|
||||
auto colon = strchr(string, ':');
|
||||
if(colon)
|
||||
*colon = '\0';
|
||||
finalText += " ";
|
||||
finalText += string;
|
||||
}
|
||||
}
|
||||
}
|
||||
return finalText;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue