Configuração de pontos de interrupção

Os pontos de interrupção são criados com o método AddBreakpoint . Esse método cria um objeto IDebugBreakpoint que representa o ponto de interrupção. Ele também define o tipo de ponto de interrupção (ponto de interrupção de software ou ponto de interrupção do processador). Depois que um ponto de interrupção for criado, seu tipo não poderá ser alterado.

Os pontos de interrupção são excluídos com o método RemoveBreakpoint . Isso também exclui o objeto IDebugBreakpoint ; esse objeto não pode ser usado novamente.

Nota Embora IDebugBreakpoint implemente a interface IUnknown , os métodos IUnknown::AddRef e IUnknown::Release não são usados para controlar o tempo de vida do ponto de interrupção. Esses métodos não têm efeito sobre o tempo de vida do ponto de interrupção. Em vez disso, um objeto IDebugBreakpoint é excluído depois que o método RemoveBreakpoint é chamado.

Quando o ponto de interrupção é criado, ele recebe uma ID de ponto de interrupção exclusiva. Esse identificador não será alterado. No entanto, depois que o ponto de interrupção tiver sido excluído, sua ID poderá ser usada para outro ponto de interrupção. Para obter detalhes sobre como receber notificação da remoção de um ponto de interrupção, consulte Eventos de monitoramento.

Quando um ponto de interrupção é criado, ele é inicialmente desabilitado; isso significa que ele não fará com que o destino pare de ser executado. Esse ponto de interrupção pode ser habilitado usando o método AddFlags para adicionar o sinalizador DEBUG_BREAKPOINT_ENABLED.

Quando um ponto de interrupção é criado pela primeira vez, ele tem o local de memória 0x00000000 associado a ele. O local pode ser alterado usando SetOffset com um endereço ou usando SetOffsetExpression com uma expressão simbólica. O local do ponto de interrupção deve ser alterado de seu valor inicial antes de ser usado.