IDkmBaseFuncEvalService Interface

Definition

Interface implemented by base debug monitors to allow resuming the process for a function evaluation. This interface contains the basic services utilized by 'ExecuteFuncEval'. Setup, cleanup, timeout handling, exception handling and completion detection are all handled by the higher-level debug monitors.

This interface is not provided for CLR v2 debugging.

Implementations of this interface may restrict when they are called using a filter defined in their component configuration. The following properties may be used: BaseDebugMonitorId, EngineId, TransportKind.

public interface class IDkmBaseFuncEvalService
public interface class IDkmBaseFuncEvalService
__interface IDkmBaseFuncEvalService
public interface IDkmBaseFuncEvalService
type IDkmBaseFuncEvalService = interface
Public Interface IDkmBaseFuncEvalService

Methods

BeginFuncEvalExecution(DkmThread, DkmFuncEvalFlags)

This method is used to resume the target process so that a function evaluation may occur. This function is called by a runtime debug monitor after it has setup a function evaluation in order to make the target process run. The runtime monitor will first update the thread context, update any necessary memory in the target process, and setup any detection that the function evaluation is completed.

Callers of this method MUST always call EndFuncEvalExecution before returning from the operation that triggered the function evaluation. The behavior is undefined if a caller fails to do so.

This method is implemented in the base debug monitor by first updating the target process to be in function evaluation mode (DkmThread.OnBeginFuncEvalExecution), then suspending and/or resuming threads as specified by the function evaluation flags and finally continuing the target process.

This method may be called from any thread, however OnBeginFuncEvalExecution must be called from the stopping event thread, so the base debug monitor may need to perform as thread switch as part of the implementation of this method. The base debug monitor should not return from BeginFuncEvalExecution until after the target has been resumed.

Applies to