Puntos de interrupción sin resolver (puntos de interrupción bu)
Si se establece un punto de interrupción para un nombre de rutina que no se ha cargado, el punto de interrupción se denomina punto de interrupción diferido, virtual o sin resolver. (Estos términos se usan indistintamente). Los puntos de interrupción sin resolver no están asociados a ninguna carga específica de un módulo. Cada vez que se carga una nueva aplicación, se comprueba este nombre de rutina. Si aparece esta rutina, el depurador calcula la dirección codificada real del punto de interrupción virtual y habilita el punto de interrupción.
Si establece un punto de interrupción mediante el comando bu, el punto de interrupción se considera automáticamente sin resolver. Si este punto de interrupción está en un módulo cargado, el punto de interrupción sigue habilitado y funciona normalmente. Sin embargo, si el módulo se descarga y se vuelve a cargar más adelante, este punto de interrupción no desaparece. Por otro lado, un punto de interrupción establecido con bp se resuelve inmediatamente en una dirección.
Hay tres diferencias principales entre los puntos de interrupción bp y los puntos de interrupción bu:
Una ubicación de punto de interrupción bp siempre se convierte en una dirección. Si un cambio de módulo mueve el código en el que se estableció un punto de interrupción bp, el punto de interrupción permanece en la misma dirección. Por otro lado, un punto de interrupción bu permanece asociado con el valor simbólico (normalmente un símbolo más un desplazamiento) que se usó y realiza un seguimiento de esta ubicación simbólica incluso si su dirección cambia.
Si se encuentra una dirección de punto de interrupción bp en un módulo cargado y, si ese módulo se descarga más adelante, el punto de interrupción se quita de la lista de puntos de interrupción. Por otro lado, los puntos de interrupción bu persisten después de cargas y descargas repetidas.
Los puntos de interrupción establecidos con bp no se guardan en áreas de trabajo de WinDbg. Los puntos de interrupción que se establecen con bu se guardan en áreas de trabajo.
Control de puntos de interrupción de direcciones y puntos de interrupción sin resolver
Los puntos de interrupción de dirección se pueden crear con el comando bp (Establecer punto de interrupción) o con el comando bm (Establecer punto de interrupción de símbolos) cuando se incluye el modificador /d. Los puntos de interrupción sin resolver se pueden crear con el comando bu (Establecer punto de interrupción sin resolver) o con el comando bm cuando no se incluye el modificador /d. Los comandos que deshabilitan, habilitan y modifican puntos de interrupción se aplican a todos los tipos de puntos de interrupción. Los comandos que muestran una lista de puntos de interrupción incluyen todos los puntos de interrupción e indican el tipo de cada uno. Para obtener una lista de estos comandos, consulte Métodos de control de puntos de interrupción.
El cuadro de diálogo Puntos de interrupción de WinDbg muestra todos los puntos de interrupción, lo que indica puntos de interrupción sin resolver con la notación "u". Este cuadro de diálogo se puede usar para modificar cualquier punto de interrupción. El cuadro de texto Comando de este cuadro de diálogo se puede usar para crear cualquier tipo de punto de interrupción; si se omite el tipo, se crea un punto de interrupción sin resolver. Para obtener más información, consulte Edición | Puntos de interrupción. Al establecer un punto de interrupción mediante el mouse en la ventana Desensamblado de WinDbg o en la ventana Origen, el depurador crea un punto de interrupción sin resolver.