IDebugEngineProgram2::WatchForExpressionEvaluationOnThread
Allows (or disallows) expression evaluation to occur on the given thread, even if the program has stopped.
HRESULT WatchForExpressionEvaluationOnThread(
IDebugProgram2* pOriginatingProgram,
DWORD dwTid,
DWORD dwEvalFlags,
IDebugEventCallback2* pExprCallback,
BOOL fWatch
);
int WatchForExpressionEvaluationOnThread(
IDebugProgram2 pOriginatingProgram,
uint dwTid,
uint dwEvalFlags,
IDebugEventCallback2 pExprCallback,
int fWatch
);
Parameters
pOriginatingProgram
[in] An IDebugProgram2 object representing the program that is evaluating an expression.dwTid
[in] Specifies the identifier of the thread.dwEvalFlags
[in] A combination of flags from the EVALFLAGS enumeration that specify how the evaluation is to be performed.pExprCallback
[in] An IDebugEventCallback2 object to be used to send debug events that occur during expression evaluation.fWatch
[in] If non-zero (TRUE), allows expression evaluation on the thread identified by dwTid; otherwise, zero (FALSE) disallows expression evaluation on that thread.
Return Value
If successful, returns S_OK; otherwise, returns an error code.
Remarks
When the session debug manager (SDM) asks a program, identified by the pOriginatingProgram parameter, to evaluate an expression, it notifies all other attached programs by calling this method.
Expression evaluation in one program may cause code to run in another, due to function evaluation or evaluation of any IDispatch properties. Because of this, this method allows expression evaluation to run and complete even though the thread may be stopped in this program.