diff --git a/src/dbg/commands/cmd-undocumented.cpp b/src/dbg/commands/cmd-undocumented.cpp index 1c50094d..b927c237 100644 --- a/src/dbg/commands/cmd-undocumented.cpp +++ b/src/dbg/commands/cmd-undocumented.cpp @@ -473,4 +473,12 @@ CMDRESULT cbInstrBriefcheck(int argc, char* argv[]) dprintf("%p: %s\n", cp.Address(), mnem.c_str()); } return STATUS_CONTINUE; -} \ No newline at end of file +} + +CMDRESULT cbInstrFocusinfo(int argc, char* argv[]) +{ + ACTIVEVIEW activeView; + GuiGetActiveView(&activeView); + dprintf("activeTitle: %s, activeClass: %s\n", activeView.title, activeView.className); + return STATUS_CONTINUE; +} diff --git a/src/dbg/commands/cmd-undocumented.h b/src/dbg/commands/cmd-undocumented.h index 637d0993..57b65fc7 100644 --- a/src/dbg/commands/cmd-undocumented.h +++ b/src/dbg/commands/cmd-undocumented.h @@ -11,4 +11,5 @@ CMDRESULT cbInstrLoopList(int argc, char* argv[]); CMDRESULT cbInstrCapstone(int argc, char* argv[]); CMDRESULT cbInstrVisualize(int argc, char* argv[]); CMDRESULT cbInstrMeminfo(int argc, char* argv[]); -CMDRESULT cbInstrBriefcheck(int argc, char* argv[]); \ No newline at end of file +CMDRESULT cbInstrBriefcheck(int argc, char* argv[]); +CMDRESULT cbInstrFocusinfo(int argc, char* argv[]); \ No newline at end of file diff --git a/src/dbg/x64dbg.cpp b/src/dbg/x64dbg.cpp index 32e13c45..68671502 100644 --- a/src/dbg/x64dbg.cpp +++ b/src/dbg/x64dbg.cpp @@ -223,6 +223,7 @@ static void registercommands() dbgcmdnew("TraceOverIntoTraceRecord\1toit", cbDebugTraceOverIntoTraceRecord, true); //Trace over into trace record dbgcmdnew("RunToParty", cbDebugRunToParty, true); //Run to code in a party dbgcmdnew("RunToUserCode\1rtu", cbDebugRunToUserCode, true); //Run to user code + dbgcmdnew("guidfind\1findguid", cbInstrGUIDFind, true); //find GUID references TODO: undocumented //thread control dbgcmdnew("createthread\1threadcreate\1newthread\1threadnew", cbDebugCreatethread, true); //create thread @@ -313,6 +314,7 @@ static void registercommands() dbgcmdnew("analxrefs\1analx", cbInstrAnalxrefs, true); //analyze xrefs dbgcmdnew("analrecur\1analr", cbInstrAnalrecur, true); //analyze a single function dbgcmdnew("analadv", cbInstrAnalyseadv, true); //analyze xref,function and data + dbgcmdnew("traceexecute", cbInstrTraceexecute, true); //execute trace record on address TODO: undocumented dbgcmdnew("virtualmod", cbInstrVirtualmod, true); //virtual module dbgcmdnew("symdownload\1downloadsym", cbDebugDownloadSymbol, true); //download symbols @@ -418,8 +420,7 @@ static void registercommands() dbgcmdnew("visualize", cbInstrVisualize, true); //visualize analysis dbgcmdnew("meminfo", cbInstrMeminfo, true); //command to debug memory map bugs dbgcmdnew("briefcheck", cbInstrBriefcheck, true); //check if mnemonic briefs are missing - dbgcmdnew("traceexecute", cbInstrTraceexecute, true); //execute trace record on address - dbgcmdnew("guidfind\1findguid", cbInstrGUIDFind, true); //find GUID references + dbgcmdnew("focusinfo", cbInstrFocusinfo, false); }; static bool cbCommandProvider(char* cmd, int maxlen)