1
0
Fork 0

GUI: some less repeating of getSymbolicName

This commit is contained in:
mrexodia 2016-12-05 22:04:58 +01:00
parent d55494b53f
commit fb1b59ce8e
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
6 changed files with 9 additions and 46 deletions

View File

@ -1439,25 +1439,6 @@ void DisassemblerGraphView::loadCurrentGraph()
this->function = this->analysis.entry;
}
QString DisassemblerGraphView::getSymbolicName(duint addr)
{
char labelText[MAX_LABEL_SIZE] = "";
char moduleText[MAX_MODULE_SIZE] = "";
bool bHasLabel = DbgGetLabelAt(addr, SEG_DEFAULT, labelText);
bool bHasModule = (DbgGetModuleAt(addr, moduleText) && !QString(labelText).startsWith("JMP.&"));
QString addrText = ToPtrString(addr);
QString finalText;
if(bHasLabel && bHasModule) //<module.label>
finalText = QString("%1 <%2.%3>").arg(addrText).arg(moduleText).arg(labelText);
else if(bHasModule) //module.addr
finalText = QString("%1.%2").arg(moduleText).arg(addrText);
else if(bHasLabel) //<label>
finalText = QString("<%1>").arg(labelText);
else
finalText = addrText;
return finalText;
}
void DisassemblerGraphView::loadGraphSlot(BridgeCFGraphList* graphList, duint addr)
{
currentGraph = BridgeCFGraph(graphList, true);

View File

@ -234,7 +234,6 @@ public:
void show_cur_instr(bool force = false);
bool navigate(duint addr);
void fontChanged();
QString getSymbolicName(duint addr);
public slots:
void updateTimerEvent();

View File

@ -2,6 +2,7 @@
#include "CachedFontMetrics.h"
#include "Configuration.h"
#include "StringUtil.h"
#include "MiscUtil.h"
#include <QPainter>
DisassemblyPopup::DisassemblyPopup(QWidget* parent) :
@ -86,25 +87,6 @@ void DisassemblyPopup::paintEvent(QPaintEvent* event)
QFrame::paintEvent(event);
}
QString DisassemblyPopup::getSymbolicName(duint addr)
{
char labelText[MAX_LABEL_SIZE] = "";
char moduleText[MAX_MODULE_SIZE] = "";
bool bHasLabel = DbgGetLabelAt(addr, SEG_DEFAULT, labelText);
bool bHasModule = (DbgGetModuleAt(addr, moduleText) && !QString(labelText).startsWith("JMP.&"));
QString addrText = ToPtrString(addr);
QString finalText;
if(bHasLabel && bHasModule) //<module.label>
finalText = QString("%1 <%2.%3>").arg(addrText).arg(moduleText).arg(labelText);
else if(bHasModule) //module.addr
finalText = QString("%1.%2").arg(moduleText).arg(addrText);
else if(bHasLabel) //<label>
finalText = QString("<%1>").arg(labelText);
else
finalText = addrText;
return finalText;
}
void DisassemblyPopup::setAddress(duint Address)
{
addr = Address;

View File

@ -15,12 +15,13 @@ public:
void paintEvent(QPaintEvent* event);
void setAddress(duint Address);
duint getAddress();
QString getSymbolicName(duint addr);
public slots:
void hide();
void updateFont();
void updateColors();
void tokenizerConfigUpdated();
protected:
CachedFontMetrics* mFontMetrics;
duint addr;

View File

@ -62,15 +62,15 @@ QString getSymbolicName(duint addr)
{
char labelText[MAX_LABEL_SIZE] = "";
char moduleText[MAX_MODULE_SIZE] = "";
bool bHasLabel = DbgGetLabelAt(addr, SEG_DEFAULT, labelText);
bool bHasModule = (DbgGetModuleAt(addr, moduleText) && !QString(labelText).startsWith("JMP.&"));
bool bHasLabel = DbgGetLabelAt(addr, SEG_DEFAULT, labelText);
bool bHasModule = (DbgGetModuleAt(addr, moduleText) && !QString(labelText).startsWith("JMP.&"));
QString addrText = ToPtrString(addr);
if(bHasLabel && bHasModule) // <module.label>
if(bHasLabel && bHasModule) // <module.label>
return QString("%1 <%2.%3>").arg(addrText).arg(moduleText).arg(labelText);
else if(bHasModule) // module.addr
else if(bHasModule) // module.addr
return QString("%1.%2").arg(moduleText).arg(addrText);
else if(bHasLabel) // <label>
else if(bHasLabel) // <label>
return QString("<%1>").arg(labelText);
else
return addrText;

View File

@ -2,7 +2,7 @@
#define MISCUTIL_H
#include <QIcon>
#include "bridge/bridgemain.h"
#include "Imports.h"
class QWidget;
class QByteArray;