IDkmRuntimeMonitorBreakpointHandler Interface

Definition

Provides services to set and remove breakpoints. This interface is implemented by the Debug Monitor for most runtimes. The implementation must use a data item to track the lifetime of each enabled DkmRuntimeBreakpoint so that it can implicitly disable the breakpoint when the DkmRuntimeBreakpoint is closed.

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, RuntimeId, SourceId.

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

Methods

DisableRuntimeBreakpoint(DkmRuntimeBreakpoint)

Disables a breakpoint. Disabling a breakpoint is typically implemented by modifying the state of the target process so the breakpoint will no longer fire. For example, removing a previously inserted 'int3' from the instruction stream. If the breakpoint is already disabled, this operation has no effect. In addition to this method, a breakpoint is implicitly disabled when it is closed.

If multiple breakpoints are set on the same instruction, disabling one breakpoint does not affect the other breakpoints set on this instruction.

EnableRuntimeBreakpoint(DkmRuntimeBreakpoint)

Enables a breakpoint. Breakpoints start off initially disabled, so this method must be called before the breakpoint can be set. Enabling a breakpoint is typically implemented in the debug monitor by modifying the state of the target process. For example inserting an 'int3' instruction into the code stream. If the breakpoint is already enabled, this operation has no effect.

Once a breakpoint has been enabled, the debug monitor will raise a RuntimeBreakpoint event for this DkmRuntimeBreakpoint object whenever the trigger condition (ex: target instruction is executed) is met. Multiple DkmRuntimeBreakpoints may be set on the same instruction. In this case, the debug monitor will raise a different RuntimeBreakpoint event for each breakpoint object. Similarly, if a step complete and a breakpoint both complete on the same instruction, the debug monitor will raise both events.

TestRuntimeBreakpoint(DkmRuntimeBreakpoint)

Determines if the given DkmRuntimeBreakpoint could be enabled. This is used from within the breakpoints dialog to validate breakpoints before the dialog is closed.

Applies to