Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Se um ponto de interrupção for definido para um nome de rotina que não foi carregado, o ponto de interrupção é chamado de ponto de interrupção deferido, virtual ou não resolvido. (Esses termos são usados de forma intercambiável.) Pontos de interrupção não resolvidos não estão associados a qualquer carga específica de um módulo. Sempre que um novo aplicativo é carregado, ele é verificado para esse nome de rotina. Se essa rotina aparecer, o depurador calculará o endereço codificado real do ponto de interrupção virtual e habilitará o ponto de interrupção.
Se você definir um ponto de interrupção usando o comando bu , o ponto de interrupção será automaticamente considerado não resolvido. Se esse ponto de interrupção estiver em um módulo carregado, o ponto de interrupção ainda estará habilitado e funcionará normalmente. No entanto, se o módulo for descarregado e recarregado posteriormente, esse ponto de interrupção não desaparecerá. Por outro lado, um ponto de interrupção definido com bp é resolvido imediatamente para um endereço.
Há três diferenças principais entre os pontos de interrupção bp e os pontos de interrupção bu:
Um local de ponto de interrupção bp é sempre convertido em um endereço. Se uma alteração de módulo mover o código no qual um ponto de interrupção bp foi definido, o ponto de interrupção permanecerá no mesmo endereço. Por outro lado, um ponto de interrupção bu permanece associado ao valor simbólico (normalmente um símbolo mais um deslocamento) que foi usado, e acompanha esse local simbólico mesmo se seu endereço for alterado.
Se um endereço de ponto de interrupção bp for encontrado em um módulo carregado e se esse módulo for descarregado posteriormente, o ponto de interrupção será removido da lista de pontos de interrupção. Por outro lado, os pontos de interrupção bu persistem após descarregamentos e cargas repetidos.
Os pontos de interrupção definidos com bp não são salvos em workspaces do WinDbg. Os pontos de interrupção definidos com bu são salvos em workspaces.
Controlando pontos de interrupção de endereço e pontos de interrupção não resolvidos
Os pontos de interrupção de endereço podem ser criados com o comando bp (Definir Ponto de Interrupção) ou o comando bm (Definir Ponto de Interrupção de Símbolo) quando o comutador /d é incluído. Pontos de interrupção não resolvidos podem ser criados com o comando bu (Definir Ponto de Interrupção Não Resolvido) ou o comando bm quando o comutador /d não está incluído. Os comandos que desabilitam, habilitam e modificam pontos de interrupção se aplicam a todos os tipos de pontos de interrupção. Os comandos que exibem uma lista de pontos de interrupção incluem todos os pontos de interrupção e indicam o tipo de cada um. Para obter uma listagem desses comandos, consulte Métodos de controle de pontos de interrupção.
A caixa de diálogo Pontos de Interrupção do WinDbg exibe todos os pontos de interrupção, indicando pontos de interrupção não resolvidos com a notação "u". Essa caixa de diálogo pode ser usada para modificar qualquer ponto de interrupção. A caixa de texto Comando nesta caixa de diálogo pode ser usada para criar qualquer tipo de ponto de interrupção; se o tipo for omitido, um ponto de interrupção não resolvido será criado. Para obter detalhes, consulte Editar | Pontos de interrupção. Quando você define um ponto de interrupção usando o mouse na janela Desmontagem do WinDbg ou na janela De origem, o depurador cria um ponto de interrupção não resolvido.