Establecer puntos de interrupción
Los puntos de interrupción se crean con el método AddBreakpoint . Este método crea un objeto IDebugBreakpoint que representa el punto de interrupción. También establece el tipo de punto de interrupción (punto de interrupción de software o punto de interrupción del procesador). Una vez creado un punto de interrupción, no se puede cambiar su tipo.
Los puntos de interrupción se eliminan con el método RemoveBreakpoint . Esto también elimina el objeto IDebugBreakpoint ; Es posible que este objeto no se vuelva a usar.
Nota Aunque IDebugBreakpoint implementa la interfaz IUnknown , los métodos IUnknown::AddRef e IUnknown::Release no se usan para controlar la duración del punto de interrupción. Estos métodos no tienen ningún efecto en la duración del punto de interrupción. En su lugar, se elimina un objeto IDebugBreakpoint después de llamar al método RemoveBreakpoint .
Cuando se crea el punto de interrupción, se le asigna un identificador de punto de interrupción único. Este identificador no cambiará. Sin embargo, después de eliminar el punto de interrupción, su identificador se puede usar para otro punto de interrupción. Para obtener más información sobre cómo recibir una notificación de eliminación de un punto de interrupción, consulte Supervisión de eventos.
Cuando se crea un punto de interrupción, se deshabilita inicialmente; esto significa que no hará que el destino deje de ejecutarse. Este punto de interrupción se puede habilitar mediante el método AddFlags para agregar la marca de DEBUG_BREAKPOINT_ENABLED.
Cuando se crea un punto de interrupción por primera vez, tiene la ubicación de memoria 0x00000000 asociada. La ubicación se puede cambiar mediante SetOffset con una dirección o mediante SetOffsetExpression con una expresión simbólica. La ubicación del punto de interrupción debe cambiarse a partir de su valor inicial antes de usarse.