BRIDGE: added GuiUpdateAllViews export
BRIDGE: added GuiUpdateDisassemblyView export DBG: call GuiUpdateAllViews(); where needed (resolved issue #19) GUI: compatible with Qt5 & MSVC again GUI: added '_gui_updatedisassemblyview' export
This commit is contained in:
parent
d7dc655794
commit
67bf3d2868
|
@ -11,6 +11,7 @@ GUISETDEBUGSTATE _gui_setdebugstate;
|
|||
GUIADDLOGMESSAGE _gui_addlogmessage;
|
||||
GUILOGCLEAR _gui_logclear;
|
||||
GUIUPDATEREGISTERVIEW _gui_updateregisterview;
|
||||
GUIUPDATEDISASSEMBLYVIEW _gui_updatedisassemblyview;
|
||||
|
||||
//DBG functions
|
||||
DBGDBGINIT _dbg_dbginit;
|
||||
|
|
|
@ -34,6 +34,7 @@ typedef void (*GUISETDEBUGSTATE)(DBGSTATE state);
|
|||
typedef void (*GUIADDLOGMESSAGE)(const char* msg);
|
||||
typedef void (*GUILOGCLEAR)();
|
||||
typedef void (*GUIUPDATEREGISTERVIEW)();
|
||||
typedef void (*GUIUPDATEDISASSEMBLYVIEW)();
|
||||
|
||||
//GUI functions
|
||||
extern GUIGUIINIT _gui_guiinit;
|
||||
|
@ -42,6 +43,7 @@ extern GUISETDEBUGSTATE _gui_setdebugstate;
|
|||
extern GUIADDLOGMESSAGE _gui_addlogmessage;
|
||||
extern GUILOGCLEAR _gui_logclear;
|
||||
extern GUIUPDATEREGISTERVIEW _gui_updateregisterview;
|
||||
extern GUIUPDATEDISASSEMBLYVIEW _gui_updatedisassemblyview;
|
||||
|
||||
//DBG typedefs
|
||||
typedef const char* (*DBGDBGINIT)();
|
||||
|
|
|
@ -43,6 +43,10 @@ DLL_IMPEXP const char* BridgeInit()
|
|||
_gui_updateregisterview=(GUIUPDATEREGISTERVIEW)GetProcAddress(hInstGui, "_gui_updateregisterview");
|
||||
if(!_gui_updateregisterview)
|
||||
return "Export \"_gui_updateregisterview\" could not be found!";
|
||||
//_gui_updatedisassemblyview
|
||||
_gui_updatedisassemblyview=(GUIUPDATEDISASSEMBLYVIEW)GetProcAddress(hInstGui, "_gui_updatedisassemblyview");
|
||||
if(!_gui_updatedisassemblyview)
|
||||
return "Export \"_gui_updatedisassemblyview\" could not be found!";
|
||||
|
||||
///DBG Load
|
||||
hInstDbg=LoadLibraryA(dbg_lib); //Mr. eXoDia
|
||||
|
@ -312,11 +316,22 @@ DLL_IMPEXP void GuiLogClear()
|
|||
_gui_logclear();
|
||||
}
|
||||
|
||||
DLL_IMPEXP void GuiUpdateAllViews()
|
||||
{
|
||||
GuiUpdateRegisterView();
|
||||
GuiUpdateDisassemblyView();
|
||||
}
|
||||
|
||||
DLL_IMPEXP void GuiUpdateRegisterView()
|
||||
{
|
||||
_gui_updateregisterview();
|
||||
}
|
||||
|
||||
DLL_IMPEXP void GuiUpdateDisassemblyView()
|
||||
{
|
||||
_gui_updatedisassemblyview();
|
||||
}
|
||||
|
||||
//Main
|
||||
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
|
||||
{
|
||||
|
|
|
@ -164,7 +164,9 @@ DLL_IMPEXP void GuiDisasmAt(duint addr, duint cip);
|
|||
DLL_IMPEXP void GuiSetDebugState(DBGSTATE state);
|
||||
DLL_IMPEXP void GuiAddLogMessage(const char* msg);
|
||||
DLL_IMPEXP void GuiLogClear();
|
||||
DLL_IMPEXP void GuiUpdateAllViews();
|
||||
DLL_IMPEXP void GuiUpdateRegisterView();
|
||||
DLL_IMPEXP void GuiUpdateDisassemblyView();
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ bool dbgisrunning()
|
|||
|
||||
void DebugUpdateGui(uint disasm_addr)
|
||||
{
|
||||
GuiUpdateRegisterView();
|
||||
GuiUpdateAllViews();
|
||||
GuiDisasmAt(disasm_addr, (duint)GetContextData(UE_CIP));
|
||||
}
|
||||
|
||||
|
@ -533,6 +533,7 @@ CMDRESULT cbDebugSetBPX(const char* cmd) //bp addr [,name [,type]]
|
|||
dprintf("breakpoint at "fhex" set!\n", addr);
|
||||
else
|
||||
dputs("problem setting breakpoint!");
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -563,6 +564,7 @@ CMDRESULT cbDebugEnableBPX(const char* cmd)
|
|||
bNext=false;
|
||||
}
|
||||
dputs("all breakpoints enabled!");
|
||||
GuiUpdateAllViews();
|
||||
return res;
|
||||
}
|
||||
BREAKPOINT* bp=bpfind(bplist, arg1, 0, 0, BPNORMAL);
|
||||
|
@ -595,6 +597,7 @@ CMDRESULT cbDebugEnableBPX(const char* cmd)
|
|||
dputs("could not enable breakpoint");
|
||||
else
|
||||
bp->enabled=true;
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -625,6 +628,7 @@ CMDRESULT cbDebugDisableBPX(const char* cmd)
|
|||
bNext=false;
|
||||
}
|
||||
dputs("all breakpoints disabled!");
|
||||
GuiUpdateAllViews();
|
||||
return res;
|
||||
}
|
||||
BREAKPOINT* bp=bpfind(bplist, arg1, 0, 0, BPNORMAL);
|
||||
|
@ -657,6 +661,7 @@ CMDRESULT cbDebugDisableBPX(const char* cmd)
|
|||
dputs("could not disable breakpoint");
|
||||
else
|
||||
bp->enabled=false;
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -714,6 +719,7 @@ CMDRESULT cbDebugToggleBPX(const char* cmd)
|
|||
}
|
||||
}
|
||||
varset("$res", (uint)disable, false);
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -743,6 +749,7 @@ CMDRESULT cbDebugDeleteBPX(const char* cmd)
|
|||
}
|
||||
//memset(bplist, 0, sizeof(BREAKPOINT));
|
||||
dputs("all breakpoints deleted!");
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
BREAKPOINT* bp=bpfind(bplist, arg1, 0, 0, BPNORMAL);
|
||||
|
@ -767,6 +774,7 @@ CMDRESULT cbDebugDeleteBPX(const char* cmd)
|
|||
return STATUS_ERROR;
|
||||
}
|
||||
bpdel(bplist, 0, bp->addr, BPNORMAL);
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -903,6 +911,7 @@ CMDRESULT cbDebugMemoryBpx(const char* cmd)
|
|||
dprintf("memory breakpoint at "fhex" set!\n", addr);
|
||||
else
|
||||
dputs("problem setting breakpoint (report please)!");
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
@ -985,6 +994,7 @@ CMDRESULT cbDebugSetHardwareBreakpoint(const char* cmd)
|
|||
dprintf("hardware breakpoint at "fhex" set!\n", addr);
|
||||
else
|
||||
dputs("problem setting breakpoint (report please)!");
|
||||
GuiUpdateAllViews();
|
||||
return STATUS_CONTINUE;
|
||||
}
|
||||
|
||||
|
|
|
@ -1272,6 +1272,7 @@ bool valtostring(const char* string, uint* value, bool silent)
|
|||
dputs("failed to write memory");
|
||||
return false;
|
||||
}
|
||||
GuiUpdateAllViews(); //repaint gui
|
||||
return true;
|
||||
}
|
||||
else if(isregister(string)) //register
|
||||
|
@ -1286,7 +1287,7 @@ bool valtostring(const char* string, uint* value, bool silent)
|
|||
if(strstr(string, "ip"))
|
||||
DebugUpdateGui(GetContextData(UE_CIP)); //update disassembly + register view
|
||||
else
|
||||
GuiUpdateRegisterView(); //update register view
|
||||
GuiUpdateAllViews(); //repaint gui
|
||||
return ok;
|
||||
}
|
||||
else if(*string=='!' and isflag(string+1)) //flag
|
||||
|
@ -1301,7 +1302,7 @@ bool valtostring(const char* string, uint* value, bool silent)
|
|||
if(*value)
|
||||
set=true;
|
||||
setflag(string+1, set);
|
||||
GuiUpdateRegisterView(); //update register view
|
||||
GuiUpdateAllViews(); //repaint gui
|
||||
return true;
|
||||
}
|
||||
return varset(string, *value, false); //variable
|
||||
|
|
|
@ -31,7 +31,7 @@ AbstractTableView::AbstractTableView(QWidget *parent) : QAbstractScrollArea(pare
|
|||
|
||||
mNbrOfLineToPrint = 0;
|
||||
|
||||
mColResizeData = (ColumnResizingData_t){false, 0, 0};
|
||||
memset(&mColResizeData, 0, sizeof(mColResizeData));
|
||||
|
||||
mGuiState = AbstractTableView::NoState;
|
||||
|
||||
|
@ -39,7 +39,7 @@ AbstractTableView::AbstractTableView(QWidget *parent) : QAbstractScrollArea(pare
|
|||
|
||||
// ScrollBar Init
|
||||
setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
|
||||
mScrollBarAttributes = (ScrollBar64_t){false, 0};
|
||||
memset(&mScrollBarAttributes, 0, sizeof(mScrollBarAttributes));
|
||||
|
||||
setMouseTracking(true);
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ void Bridge::emitDisassembleAtSignal(int_t va, int_t eip)
|
|||
#endif
|
||||
}
|
||||
|
||||
void Bridge::emitRepaintGUI()
|
||||
void Bridge::emitUpdateDisassembly()
|
||||
{
|
||||
#ifdef BUILD_LIB
|
||||
emit repaintGui();
|
||||
|
@ -169,9 +169,9 @@ void Bridge::initBridge()
|
|||
Bridge::getBridge()->emitDisassembleAtSignal((int_t)va, (int_t)eip);
|
||||
}
|
||||
|
||||
__declspec(dllexport) void _gui_repaint()
|
||||
__declspec(dllexport) void _gui_updatedisassemblyview()
|
||||
{
|
||||
Bridge::getBridge()->emitRepaintGUI();
|
||||
Bridge::getBridge()->emitUpdateDisassembly();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@ public:
|
|||
void readProcessMemory(byte_t* dest, uint_t va, uint_t size);
|
||||
uint_t getSize(uint_t va);
|
||||
void emitDisassembleAtSignal(int_t va, int_t eip);
|
||||
void emitRepaintGUI();
|
||||
void emitUpdateDisassembly();
|
||||
void emitDbgStateChanged(DBGSTATE state);
|
||||
uint_t getBase(uint_t addr);
|
||||
static Bridge* getBridge();
|
||||
|
|
|
@ -14,6 +14,7 @@
|
|||
extern "C" __declspec(dllexport) void _gui_addlogmessage(const char* msg);
|
||||
extern "C" __declspec(dllexport) void _gui_logclear();
|
||||
extern "C" __declspec(dllexport) void _gui_updateregisterview();
|
||||
extern "C" __declspec(dllexport) void _gui_updatedisassemblyview();
|
||||
#endif
|
||||
|
||||
|
||||
|
|
|
@ -206,7 +206,7 @@ void MainWindow::dropEvent(QDropEvent* pEvent)
|
|||
if(pEvent->mimeData()->hasUrls())
|
||||
{
|
||||
QString filename = QString(pEvent->mimeData()->data("FileName"));
|
||||
if(filename.contains(".exe", Qt::CaseInsensitive) or filename.contains(".dll", Qt::CaseInsensitive))
|
||||
if(filename.contains(".exe", Qt::CaseInsensitive) || filename.contains(".dll", Qt::CaseInsensitive))
|
||||
{
|
||||
if(DbgIsDebugging())
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue