1
0
Fork 0

DBG+GUI: dumpAtN signal (in anticipation of the multiple dump windows issue #300)

This commit is contained in:
mrexodia 2015-11-25 23:43:41 +01:00
parent 4e6cdf9453
commit dc16750418
5 changed files with 27 additions and 2 deletions

View File

@ -1231,6 +1231,11 @@ BRIDGE_IMPEXP void GuiGetDebuggeeNotes(char** text)
_gui_sendmessage(GUI_GET_DEBUGGEE_NOTES, text, nullptr);
}
BRIDGE_IMPEXP void GuiDumpAtN(duint va, int index)
{
_gui_sendmessage(GUI_DUMP_AT_N, (void*)va, (void*)index);
}
BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
hInst = hinstDLL;

View File

@ -779,7 +779,8 @@ typedef enum
GUI_SET_GLOBAL_NOTES, // param1=const char* text, param2=unused
GUI_GET_GLOBAL_NOTES, // param1=char** text, param2=unused
GUI_SET_DEBUGGEE_NOTES, // param1=const char* text, param2=unused
GUI_GET_DEBUGGEE_NOTES // param1=char** text, param2=unused
GUI_GET_DEBUGGEE_NOTES, // param1=char** text, param2=unused
GUI_DUMP_AT_N, // param1=int index, param2=duint va
} GUIMSG;
//GUI Typedefs
@ -877,6 +878,7 @@ BRIDGE_IMPEXP void GuiSetGlobalNotes(const char* text);
BRIDGE_IMPEXP void GuiGetGlobalNotes(char** text);
BRIDGE_IMPEXP void GuiSetDebuggeeNotes(const char* text);
BRIDGE_IMPEXP void GuiGetDebuggeeNotes(char** text);
BRIDGE_IMPEXP void GuiDumpAtN(duint va, int index);
#ifdef __cplusplus
}

View File

@ -1027,7 +1027,18 @@ CMDRESULT cbDebugDump(int argc, char* argv[])
dprintf("Invalid address \"%s\"!\n", argv[1]);
return STATUS_ERROR;
}
GuiDumpAt(addr);
if (argc > 2)
{
duint index = 0;
if (!valfromstring(argv[2], &index))
{
dprintf("Invalid address \"%s\"!\n", argv[2]);
return STATUS_ERROR;
}
GuiDumpAtN(addr, index);
}
else
GuiDumpAt(addr);
return STATUS_CONTINUE;
}

View File

@ -518,6 +518,12 @@ void* Bridge::processMessage(GUIMSG type, void* param1, void* param2)
result.Wait();
}
break;
case GUI_DUMP_AT_N:
{
emit dumpAtN((duint)param1, (int)param2);
}
break;
}
return nullptr;
}

View File

@ -113,6 +113,7 @@ signals:
void getGlobalNotes(void* text);
void setDebuggeeNotes(const QString text);
void getDebuggeeNotes(void* text);
void dumpAtN(duint va, int index);
private:
QMutex* mBridgeMutex;