diff --git a/src/bridge/bridgemain.cpp b/src/bridge/bridgemain.cpp index 78c9215b..f6a3ab9d 100644 --- a/src/bridge/bridgemain.cpp +++ b/src/bridge/bridgemain.cpp @@ -875,7 +875,11 @@ BRIDGE_IMPEXP void GuiUpdateAllViews() GuiUpdateDumpView(); GuiUpdateThreadView(); GuiUpdateSideBar(); + GuiUpdatePatches(); + GuiUpdateCallStack(); GuiRepaintTableView(); + GuiUpdateSEHChain(); + GuiUpdateArgumentWidget(); } BRIDGE_IMPEXP void GuiUpdateRegisterView() @@ -1290,6 +1294,11 @@ BRIDGE_IMPEXP void GuiUnregisterScriptLanguage(int id) _gui_sendmessage(GUI_UNREGISTER_SCRIPT_LANG, (void*)id, nullptr); } +BRIDGE_IMPEXP void GuiUpdateArgumentWidget() +{ + _gui_sendmessage(GUI_UPDATE_ARGUMENT_VIEW, nullptr, nullptr); +} + BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { hInst = hinstDLL; diff --git a/src/bridge/bridgemain.h b/src/bridge/bridgemain.h index ba6904c2..b8ed3ed6 100644 --- a/src/bridge/bridgemain.h +++ b/src/bridge/bridgemain.h @@ -329,8 +329,8 @@ typedef struct char breakCondition[MAX_CONDITIONAL_EXPR_SIZE]; char logText[MAX_CONDITIONAL_TEXT_SIZE]; char logCondition[MAX_CONDITIONAL_EXPR_SIZE]; - char commandText[MAX_CONDITIONAL_EXPR_SIZE]; - char commandCondition[MAX_CONDITIONAL_TEXT_SIZE]; + char commandText[MAX_CONDITIONAL_TEXT_SIZE]; + char commandCondition[MAX_CONDITIONAL_EXPR_SIZE]; } BRIDGEBP; typedef struct @@ -817,7 +817,8 @@ typedef enum GUI_DUMP_AT_N, // param1=int index, param2=duint va GUI_DISPLAY_WARNING, // param1=const char *text, param2=unused GUI_REGISTER_SCRIPT_LANG, // param1=SCRIPTTYPEINFO* info, param2=unused - GUI_UNREGISTER_SCRIPT_LANG // param1=int id, param2=unused + GUI_UNREGISTER_SCRIPT_LANG, // param1=int id, param2=unused + GUI_UPDATE_ARGUMENT_VIEW // param1=unused, param2=unused } GUIMSG; //GUI Typedefs @@ -932,6 +933,7 @@ BRIDGE_IMPEXP void GuiDumpAtN(duint va, int index); BRIDGE_IMPEXP void GuiDisplayWarning(const char* title, const char* text); BRIDGE_IMPEXP void GuiRegisterScriptLanguage(SCRIPTTYPEINFO* info); BRIDGE_IMPEXP void GuiUnregisterScriptLanguage(int id); +BRIDGE_IMPEXP void GuiUpdateArgumentWidget(); #ifdef __cplusplus } diff --git a/src/gui/Src/Gui/CallStackView.cpp b/src/gui/Src/Gui/CallStackView.cpp index 19b9ed20..97125a5f 100644 --- a/src/gui/Src/Gui/CallStackView.cpp +++ b/src/gui/Src/Gui/CallStackView.cpp @@ -34,6 +34,8 @@ void CallStackView::updateCallStack() { DBGCALLSTACK callstack; memset(&callstack, 0, sizeof(DBGCALLSTACK)); + if(!DbgFunctions()->GetCallStack) + return; DbgFunctions()->GetCallStack(&callstack); setRowCount(callstack.total); for(int i = 0; i < callstack.total; i++) diff --git a/src/gui/Src/Gui/PatchDialog.cpp b/src/gui/Src/Gui/PatchDialog.cpp index ec6e9615..1c028242 100644 --- a/src/gui/Src/Gui/PatchDialog.cpp +++ b/src/gui/Src/Gui/PatchDialog.cpp @@ -100,7 +100,7 @@ void PatchDialog::updatePatches() //get patches from DBG size_t cbsize; - if(!DbgFunctions()->PatchEnum(0, &cbsize)) + if(!DbgFunctions()->PatchEnum || !DbgFunctions()->PatchEnum(0, &cbsize)) return; int numPatches = (int)cbsize / sizeof(DBGPATCHINFO); if(!numPatches) diff --git a/src/gui/Src/Gui/SEHChainView.cpp b/src/gui/Src/Gui/SEHChainView.cpp index cfe0da4c..c210ed75 100644 --- a/src/gui/Src/Gui/SEHChainView.cpp +++ b/src/gui/Src/Gui/SEHChainView.cpp @@ -30,6 +30,8 @@ void SEHChainView::updateSEHChain() { DBGSEHCHAIN sehchain; memset(&sehchain, 0, sizeof(DBGSEHCHAIN)); + if(!DbgFunctions()->GetSEHChain) + return; DbgFunctions()->GetSEHChain(&sehchain); setRowCount(sehchain.total); for(duint i = 0; i < sehchain.total; i++)