1
0
Fork 0

DBG: bpgoto now no longer refreshes the GUI if not breaking

This commit is contained in:
mrexodia 2017-07-03 10:43:52 +02:00
parent 68f897d595
commit 6a4510ce3a
No known key found for this signature in database
GPG Key ID: FC89E0AAA0C1AAD8
4 changed files with 13 additions and 1 deletions

View File

@ -1321,7 +1321,7 @@ bool cbDebugSetBPGoto(int argc, char* argv[])
_snprintf(cmd, sizeof(cmd), "SetBreakpointCondition %s, 0", argv[1]);
if(!cmddirectexec(cmd))
return false;
_snprintf(cmd, sizeof(cmd), "SetBreakpointCommand %s, \"CIP=%s\"", argv[1], argv[2]);
_snprintf(cmd, sizeof(cmd), "SetBreakpointCommand %s, \"bpgoto(%s)\"", argv[1], argv[2]);
if(!cmddirectexec(cmd))
return false;
_snprintf(cmd, sizeof(cmd), "SetBreakpointCommandCondition %s, 1", argv[1]);

View File

@ -127,6 +127,9 @@ void ExpressionFunctions::Init()
//Arguments
RegisterEasy("arg.get,arg", argget);
RegisterEasy("arg.set", argset);
//Undocumented
RegisterEasy("bpgoto", bpgoto);
}
bool ExpressionFunctions::Register(const String & name, int argc, const CBEXPRESSIONFUNCTION & cbFunction, void* userdata)

View File

@ -377,4 +377,11 @@ namespace Exprfunc
valtostring(expr.c_str(), value, true);
return oldvalue;
}
duint bpgoto(duint cip)
{
//This is a function to sets CIP without calling DebugUpdateGui. This is a workaround for "bpgoto".
SetContextDataEx(hActiveThread, UE_CIP, cip);
return cip;
}
}

View File

@ -65,4 +65,6 @@ namespace Exprfunc
duint argget(duint index);
duint argset(duint index, duint value);
duint bpgoto(duint cip);
}