DBG: UndecorateSymbolNames preference
This commit is contained in:
parent
7abe2e19b2
commit
0ef8c6e2c9
|
|
@ -84,7 +84,7 @@ extern "C" DLL_EXPORT bool _dbg_isdebugging()
|
|||
|
||||
extern "C" DLL_EXPORT bool _dbg_isjumpgoingtoexecute(duint addr)
|
||||
{
|
||||
static unsigned int cacheFlags;
|
||||
static uint cacheFlags;
|
||||
static uint cacheAddr;
|
||||
static bool cacheResult;
|
||||
if(cacheAddr!=addr or cacheFlags!=GetContextData(UE_EFLAGS))
|
||||
|
|
@ -123,8 +123,7 @@ extern "C" DLL_EXPORT bool _dbg_addrinfoget(duint addr, SEGMENTREG segment, ADDR
|
|||
pSymbol->MaxNameLen = MAX_LABEL_SIZE;
|
||||
if(SymFromAddr(fdProcessInfo->hProcess, (DWORD64)addr, &displacement, pSymbol) and !displacement)
|
||||
{
|
||||
//TODO: user preference
|
||||
if(!UnDecorateSymbolName(pSymbol->Name, addrinfo->label, MAX_LABEL_SIZE, UNDNAME_COMPLETE))
|
||||
if(settingboolget("Engine", "UndecorateSymbolNames") or !UnDecorateSymbolName(pSymbol->Name, addrinfo->label, MAX_LABEL_SIZE, UNDNAME_COMPLETE))
|
||||
strcpy(addrinfo->label, pSymbol->Name);
|
||||
retval=true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
#include "debugger.h"
|
||||
#include "addrinfo.h"
|
||||
|
||||
static struct SYMBOLCBDATA
|
||||
struct SYMBOLCBDATA
|
||||
{
|
||||
CBSYMBOLENUM cbSymbolEnum;
|
||||
void* user;
|
||||
|
|
@ -98,8 +98,7 @@ const char* symgetsymbolicname(uint addr)
|
|||
pSymbol->MaxNameLen = MAX_LABEL_SIZE;
|
||||
if(SymFromAddr(fdProcessInfo->hProcess, (DWORD64)addr, &displacement, pSymbol) and !displacement)
|
||||
{
|
||||
//TODO: user preference
|
||||
if(!UnDecorateSymbolName(pSymbol->Name, label, MAX_SYM_NAME, UNDNAME_COMPLETE))
|
||||
if(!settingboolget("Engine", "UndecorateSymbolNames") or !UnDecorateSymbolName(pSymbol->Name, label, MAX_SYM_NAME, UNDNAME_COMPLETE))
|
||||
strcpy(label, pSymbol->Name);
|
||||
retval=true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ void SettingsDialog::LoadSettings()
|
|||
settings.eventEntryBreakpoint=true;
|
||||
settings.engineCalcType=calc_unsigned;
|
||||
settings.engineBreakpointType=break_int3short;
|
||||
settings.engineUndecorateSymbolNames=true;
|
||||
settings.exceptionRanges=&realExceptionRanges;
|
||||
|
||||
//Events tab
|
||||
|
|
@ -93,6 +94,7 @@ void SettingsDialog::LoadSettings()
|
|||
break;
|
||||
}
|
||||
}
|
||||
GetSettingBool("Engine", "UndecorateSymbolNames", &settings.engineUndecorateSymbolNames);
|
||||
switch(settings.engineCalcType)
|
||||
{
|
||||
case calc_signed:
|
||||
|
|
@ -114,6 +116,7 @@ void SettingsDialog::LoadSettings()
|
|||
ui->radioUd2->setChecked(true);
|
||||
break;
|
||||
}
|
||||
ui->chkUndecorateSymbolNames->setChecked(settings.engineUndecorateSymbolNames);
|
||||
|
||||
//Exceptions tab
|
||||
char exceptionRange[MAX_SETTING_SIZE]="";
|
||||
|
|
@ -152,6 +155,7 @@ void SettingsDialog::SaveSettings()
|
|||
//Engine tab
|
||||
BridgeSettingSetUint("Engine", "CalculationType", settings.engineCalcType);
|
||||
BridgeSettingSetUint("Engine", "BreakpointType", settings.engineBreakpointType);
|
||||
BridgeSettingSetUint("Engine", "UndecorateSymbolNames", settings.engineUndecorateSymbolNames);
|
||||
|
||||
//Exceptions tab
|
||||
QString exceptionRange="";
|
||||
|
|
@ -192,6 +196,16 @@ void SettingsDialog::AddRangeToList(RangeStruct range)
|
|||
ui->listExceptions->addItem(QString().sprintf("%.8X-%.8X", settings.exceptionRanges->at(i).start, settings.exceptionRanges->at(i).end));
|
||||
}
|
||||
|
||||
void SettingsDialog::on_btnSave_clicked()
|
||||
{
|
||||
SaveSettings();
|
||||
QMessageBox msg(QMessageBox::Information, "Information", "Settings saved!");
|
||||
msg.setWindowIcon(QIcon(":/icons/images/information.png"));
|
||||
msg.setParent(this, Qt::Dialog);
|
||||
msg.setWindowFlags(msg.windowFlags()&(~Qt::WindowContextHelpButtonHint));
|
||||
msg.exec();
|
||||
}
|
||||
|
||||
void SettingsDialog::on_chkSystemBreakpoint_stateChanged(int arg1)
|
||||
{
|
||||
if(arg1==Qt::Unchecked)
|
||||
|
|
@ -297,14 +311,12 @@ void SettingsDialog::on_radioUd2_clicked()
|
|||
settings.engineBreakpointType=break_ud2;
|
||||
}
|
||||
|
||||
void SettingsDialog::on_btnSave_clicked()
|
||||
void SettingsDialog::on_chkUndecorateSymbolNames_stateChanged(int arg1)
|
||||
{
|
||||
SaveSettings();
|
||||
QMessageBox msg(QMessageBox::Information, "Information", "Settings saved!");
|
||||
msg.setWindowIcon(QIcon(":/icons/images/information.png"));
|
||||
msg.setParent(this, Qt::Dialog);
|
||||
msg.setWindowFlags(msg.windowFlags()&(~Qt::WindowContextHelpButtonHint));
|
||||
msg.exec();
|
||||
if(arg1==Qt::Unchecked)
|
||||
settings.engineUndecorateSymbolNames=false;
|
||||
else
|
||||
settings.engineUndecorateSymbolNames=true;
|
||||
}
|
||||
|
||||
void SettingsDialog::on_btnAddRange_clicked()
|
||||
|
|
|
|||
|
|
@ -19,6 +19,9 @@ public:
|
|||
void SaveSettings();
|
||||
|
||||
private slots:
|
||||
//General
|
||||
void on_btnSave_clicked();
|
||||
//Event tab
|
||||
void on_chkSystemBreakpoint_stateChanged(int arg1);
|
||||
void on_chkTlsCallbacks_stateChanged(int arg1);
|
||||
void on_chkEntryBreakpoint_stateChanged(int arg1);
|
||||
|
|
@ -29,12 +32,14 @@ private slots:
|
|||
void on_chkThreadStart_stateChanged(int arg1);
|
||||
void on_chkThreadEnd_stateChanged(int arg1);
|
||||
void on_chkDebugStrings_stateChanged(int arg1);
|
||||
//Engine tab
|
||||
void on_radioUnsigned_clicked();
|
||||
void on_radioSigned_clicked();
|
||||
void on_radioInt3Short_clicked();
|
||||
void on_radioInt3Long_clicked();
|
||||
void on_radioUd2_clicked();
|
||||
void on_btnSave_clicked();
|
||||
void on_chkUndecorateSymbolNames_stateChanged(int arg1);
|
||||
//Exception tab
|
||||
void on_btnAddRange_clicked();
|
||||
void on_btnDeleteRange_clicked();
|
||||
void on_btnAddLast_clicked();
|
||||
|
|
@ -85,6 +90,7 @@ private:
|
|||
//Engine Tab
|
||||
CalcType engineCalcType;
|
||||
BreakpointType engineBreakpointType;
|
||||
bool engineUndecorateSymbolNames;
|
||||
//Exception Tab
|
||||
QList<RangeStruct>* exceptionRanges;
|
||||
};
|
||||
|
|
|
|||
|
|
@ -293,6 +293,19 @@
|
|||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QCheckBox" name="chkUndecorateSymbolNames">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>10</x>
|
||||
<y>110</y>
|
||||
<width>151</width>
|
||||
<height>17</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Undecorate Symbol Names</string>
|
||||
</property>
|
||||
</widget>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tabExceptions">
|
||||
<attribute name="title">
|
||||
|
|
|
|||
Loading…
Reference in New Issue