Enviar eventos de inicialização após uma inicialização
Uma vez que o mecanismo de depuração (DE) é anexado ao programa, ele envia uma série de eventos de inicialização de volta para a sessão de depuração.
Os eventos de inicialização enviados de volta para a sessão de depuração incluem:
Um evento de criação de mecanismo.
Um evento de criação de programa.
Criação de threads e eventos de carregamento de módulos.
Um evento load complete, enviado quando o código é carregado e pronto para ser executado, mas antes que qualquer código seja executado.
Observação
Quando esse evento é continuado, as variáveis globais são inicializadas e as rotinas de inicialização são executadas.
Possíveis outros eventos de criação de thread e carregamento de módulo.
Um evento de ponto de entrada, que sinaliza que o programa atingiu seu ponto de entrada principal, como Main ou
WinMain
. Esse evento normalmente não é enviado se o DE for anexado a um programa que já esteja em execução.Programaticamente, o DE primeiro envia ao gerenciador de depuração de sessão (SDM) uma interface IDebugEngineCreateEvent2, que representa um evento de criação de mecanismo, seguido por um IDebugProgramCreateEvent2, que representa um evento de criação de programa.
Esses eventos geralmente são seguidos por um ou mais eventos de criação de thread IDebugThreadCreateEvent2 e eventos de carregamento de módulo IDebugModuleLoadEvent2.
Quando o código é carregado e pronto para ser executado, mas antes que qualquer código seja executado, o DE envia ao SDM um evento IDebugLoadCompleteEvent2 load complete. Finalmente, se o programa ainda não estiver em execução, o DE enviará um evento de ponto de entrada IDebugEntryPointEvent2 , sinalizando que o programa atingiu seu ponto de entrada principal e está pronto para depuração.