1
0
Fork 0

DBG: undo internal command crap

This commit is contained in:
mr.exodia 2014-04-18 23:04:28 +02:00
parent 4ff6ea0cb1
commit e21a1b0406
5 changed files with 19 additions and 17 deletions

View File

@ -580,6 +580,11 @@ BRIDGE_IMPEXP void DbgDisasmFastAt(duint addr, BASIC_INSTRUCTION_INFO* basicinfo
_dbg_sendmessage(DBG_DISASM_FAST_AT, (void*)addr, basicinfo);
}
BRIDGE_IMPEXP void DbgMenuEntryClicked(int hEntry)
{
_dbg_sendmessage(DBG_MENU_ENTRY_CLICKED, (void*)(duint)hEntry, 0);
}
//GUI
BRIDGE_IMPEXP void GuiDisasmAt(duint addr, duint cip)
{

View File

@ -125,6 +125,7 @@ enum DBGMSG
DBG_GET_THREAD_LIST, // param1=THREADALLINFO* list, param2=unused
DBG_SETTINGS_UPDATED, // param1=unused, param2=unused
DBG_DISASM_FAST_AT, // param1=duint addr, param2=BASIC_INSTRUCTION_INFO* basicinfo
DBG_MENU_ENTRY_CLICKED // param1=int hEntry, param2=unused
};
enum SCRIPTLINETYPE
@ -461,6 +462,7 @@ BRIDGE_IMPEXP bool DbgStackCommentGet(duint addr, STACK_COMMENT* comment);
BRIDGE_IMPEXP void DbgGetThreadList(THREADLIST* list);
BRIDGE_IMPEXP void DbgSettingsUpdated();
BRIDGE_IMPEXP void DbgDisasmFastAt(duint addr, BASIC_INSTRUCTION_INFO* basicinfo);
BRIDGE_IMPEXP void DbgMenuEntryClicked(int hEntry);
//Gui defines
#define GUI_PLUGIN_MENU 0

View File

@ -708,7 +708,13 @@ extern "C" DLL_EXPORT uint _dbg_sendmessage(DBGMSG type, void* param1, void* par
uint i=0;
fillbasicinfo(&disasm, (BASIC_INSTRUCTION_INFO*)param2);
}
break;
break;
case DBG_MENU_ENTRY_CLICKED:
{
int hEntry=(int)(uint)param1;
}
break;
}
return 0;
}

View File

@ -14,7 +14,6 @@
#include "threading.h"
#include "plugin_loader.h"
#include "assemble.h"
#include "value.h"
static MESSAGE_STACK* gMsgStack=0;
static COMMAND* command_list=0;
@ -45,19 +44,8 @@ static CMDRESULT cbPrintf(int argc, char* argv[])
return STATUS_CONTINUE;
}
static CMDRESULT cbMenuEntryClicked(int argc, char* argv[])
{
if(argc<2)
return STATUS_CONTINUE;
uint hEntry=0;
if(!valfromstring(argv[1], &hEntry))
return STATUS_CONTINUE;
//TODO: implement this
}
static void registercommands()
{
GuiMenuAddEntry(GUI_PLUGIN_MENU, "test");
COMMAND* cmd=command_list=cmdinit();
//debug control
@ -164,9 +152,6 @@ static void registercommands()
cmdnew(cmd, "setstr\1strset", cbInstrSetstr, false); //set a string variable
cmdnew(cmd, "getstr\1strget", cbInstrGetstr, false); //get a string variable
//internal
cmdnew(cmd, "menuentryclicked", cbMenuEntryClicked, false); //a menu entry was clicked
}
static bool cbCommandProvider(char* cmd, int maxlen)

View File

@ -674,5 +674,9 @@ void MainWindow::menuEntrySlot()
{
QAction* action = qobject_cast<QAction*>(sender());
if(action && action->objectName().startsWith("ENTRY|"))
DbgCmdExec(QString("menuentryclicked ." + action->objectName().mid(6)).toUtf8().constData());
{
int hEntry = -1;
if(sscanf(action->objectName().mid(6).toUtf8().constData(), "%d", &hEntry)==1)
DbgMenuEntryClicked(hEntry);
}
}