Monitorando eventos
Para obter uma visão geral dos eventos no mecanismo de depurador, consulte Eventos.
Os eventos que ocorrem em um destino ou no mecanismo de depurador podem ser monitorados usando a interface IDebugEventCallbacks . Um objeto IDebugEventCallbacks pode ser registrado com um cliente usando SetEventCallbacks. Cada cliente só pode ter no máximo um objeto IDebugEventCallbacks registrado com ele.
Quando um objeto IDebugEventCallbacks é registrado com um cliente, o mecanismo chamará IDebugEventCallbacks::GetInterestMask do objeto para determinar em quais eventos o objeto está interessado. Somente os eventos nos quais o objeto está interessado serão enviados para ele.
Para cada tipo de evento, o mecanismo chama um método de retorno de chamada correspondente em IDebugEventCallbacks. Para eventos do destino, o valor DEBUG_STATUS_XXX retornado dessas chamadas especifica como a execução do destino deve continuar. O mecanismo coleta esses valores retornados de cada objeto IDebugEventCallbacks que ele chama e atua no que tem a precedência mais alta.
Eventos do destino que se dividem no depurador por padrão
Os seguintes eventos entram no depurador por padrão:
Eventos de ponto de interrupção
Eventos de exceção (não documentados aqui)
Erro do Sistema
Eventos do destino que não quebram no depurador por padrão
Os seguintes eventos não são divididos no depurador por padrão:
Criar evento de processo
Evento Sair do Processo
Criar evento thread
Evento Exit Thread
Evento Load Module
Evento Unload Module
Alterações internas do mecanismo
Os seguintes eventos não são reais, mas são apenas alterações internas do mecanismo:
Alteração de destino
Alteração do mecanismo
Alteração do símbolo do mecanismo
Alteração de status da sessão