Métodos de control de puntos de interrupción
Puede especificar la ubicación de un punto de interrupción por dirección virtual, desplazamientos de módulo y rutina, o archivo de origen y número de línea (cuando está en modo de origen). Si coloca un punto de interrupción en una rutina sin desplazamiento, el punto de interrupción se activa cuando se introduce esa rutina.
Hay varios tipos adicionales de puntos de interrupción:
Un punto de interrupción se puede asociar a un subproceso determinado.
Un punto de interrupción puede habilitar un número fijo de pasos a través de una dirección antes de que se desencadene.
Un punto de interrupción puede emitir automáticamente determinados comandos cuando se desencadena.
Un punto de interrupción se puede establecer en memoria no ejecutable y watch para esa ubicación en la que se va a leer o escribir.
Si está depurando más de un proceso en modo de usuario, la colección de puntos de interrupción depende del proceso actual. Para ver o cambiar los puntos de interrupción de un proceso, debe seleccionar el proceso como proceso actual. Para obtener más información sobre el proceso actual, consulte Control de procesos y subprocesos.
Comandos del depurador para controlar y mostrar puntos de interrupción
Para controlar o mostrar puntos de interrupción, puede usar los métodos siguientes:
Use el comando bl (Lista de puntos de interrupción) para enumerar los puntos de interrupción existentes y su estado actual.
Use el comando .bpcmds (Mostrar comandos de punto de interrupción) para enumerar todos los puntos de interrupción junto con los comandos que se usaron para crearlos.
Use el comando bp (Establecer punto de interrupción) para establecer un nuevo punto de interrupción.
Use el comando bu (Establecer punto de interrupción sin resolver) para establecer un nuevo punto de interrupción. Los puntos de interrupción que se establecen con bu se denominan puntos de interrupción sin resolver; tienen características diferentes a los puntos de interrupción que se establecen con bp. Para obtener detalles completos, consulte Puntos de interrupción no resueltos (bu Puntos de interrupción).
Use el comando bm (Establecer punto de interrupción de símbolos) para establecer nuevos puntos de interrupción en símbolos que coincidan con un patrón especificado. Un punto de interrupción establecido con bm se asociará a una dirección (como un punto de interrupción bp ) si se incluye el modificador /d ; no se resolverá (como un punto de interrupción bu ) si este modificador no está incluido.
Use el comando ba (Interrumpir en access) para establecer un punto de interrupción del procesador, también conocido como punto de interrupción de datos. Estos puntos de interrupción se pueden desencadenar cuando se escribe la ubicación de memoria en, cuando se lee, cuando se ejecuta como código o cuando se produce la E/S del kernel. Para obtener detalles completos, consulte Puntos de interrupción del procesador (puntos de interrupción ba).
Use el comando bc (Punto de interrupción Clear) para quitar permanentemente uno o varios puntos de interrupción.
Use el comando bd (Breakpoint Disable) para deshabilitar temporalmente uno o varios puntos de interrupción.
Use el comando be (Punto de interrupción Habilitar) para volver a habilitar uno o varios puntos de interrupción deshabilitados.
Use el comando br (Breakpoint Renumber) para cambiar el identificador de un punto de interrupción existente.
Use el comando bs (Actualizar comando de punto de interrupción) para cambiar el comando asociado a un punto de interrupción existente.
Use el comando bsc (Actualizar punto de interrupción condicional) para cambiar la condición en la que se produce un punto de interrupción condicional existente.
En WinDbg, hay varios elementos de interfaz de usuario que facilitan el control y la visualización de puntos de interrupción. Consulta Establecer puntos de interrupción en WinDbg (clásico).
Cada punto de interrupción tiene un número decimal denominado identificador de punto de interrupción asociado. Este número identifica el punto de interrupción en varios comandos.
Comandos de punto de interrupción
Puede incluir un comando en un punto de interrupción que se ejecuta automáticamente cuando se alcanza el punto de interrupción. Por ejemplo, el comando siguiente se interrumpe en MyFunction+0x47, escribe un archivo de volcado y, a continuación, reanuda la ejecución.
0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g"
Nota Si está controlando el depurador en modo de usuario desde el depurador de kernel, no use g (Go) en la cadena de comandos del punto de interrupción. Es posible que la interfaz serie no pueda mantenerse al día con este comando y no podrá volver a dividirse en CDB. Para obtener más información sobre esta situación, vea Controlar el depurador de User-Mode desde el depurador de kernel.
Número de puntos de interrupción
En el modo kernel, puede usar un máximo de 32 puntos de interrupción de software. En el modo de usuario, puede usar cualquier número de puntos de interrupción de software.
El número de puntos de interrupción de procesador admitidos depende de la arquitectura del procesador de destino.
Puntos de interrupción condicionales
Puede establecer un punto de interrupción que se desencadene solo en determinadas condiciones. Para obtener más información sobre estos tipos de puntos de interrupción, vea Establecer un punto de interrupción condicional.
Puntos de interrupción ambiguos
En la versión 10.0.25310.1001 y posteriores del motor del depurador, ahora se admite la resolución ambigua de puntos de interrupción. Los puntos de interrupción ambiguos permiten al depurador establecer puntos de interrupción en determinados escenarios en los que una expresión de punto de interrupción se resuelve en varias ubicaciones. Para obtener más información, vea Resolución ambigua de puntos de interrupción.
Vea también
Sintaxis de punto de interrupción
bp, bu, bm (Establecer punto de interrupción)
Puntos de interrupción no resueltos (bu Puntos de interrupción)