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