Notificar al puerto
Después de iniciar un programa, el puerto debe recibir una notificación, como se indica a continuación:
Cuando un puerto recibe un nuevo nodo de programa, envía un evento de creación de programas a la sesión de depuración. El evento lleva a cabo una interfaz que representa el programa.
La sesión de depuración consulta el programa para el identificador de un motor de depuración (DE) al que se puede asociar.
La sesión de depuración comprueba si el DE está en la lista de DEs permitidos para ese programa. La sesión de depuración obtiene esta lista de la configuración del programa activo de la solución, que originalmente se le pasa por el paquete de depuración.
El DE debe estar en la lista de permitidos o, de lo contrario, el DE no se adjuntará al programa.
Mediante programación, cuando un puerto recibe por primera vez un nuevo nodo de programa, crea una interfaz IDebugProgram2 para representar el programa.
Nota:
Esto no debe confundirse con la IDebugProgram2
interfaz creada más adelante por el motor de depuración (DE).
El puerto envía un evento de creación de programas IDebugProgramCreateEvent2 al administrador de depuración de sesión (SDM) mediante una interfaz COM IConnectionPoint
.
Nota:
Esto no debe confundirse con la IDebugProgramCreateEvent2
interfaz, que el DE envía más adelante.
Junto con la propia interfaz de eventos, el puerto envía las interfaces IDebugPort2, IDebugProcess2 e IDebugProgram2 , que representan el puerto, el proceso y el programa, respectivamente. El SDM llama a IDebugProgram2::GetEngineInfo para obtener el GUID del DE que puede depurar el programa. El GUID se obtuvo originalmente de la interfaz IDebugProgramNode2 .
El SDM comprueba si el DE está en la lista de DEs permitidos. El SDM obtiene esta lista de la configuración del programa activo de la solución, que originalmente se le pasa por el paquete de depuración. El DE debe estar en la lista permitida o, de lo contrario, no se adjuntará al programa.
Una vez que se conoce la identidad del DE, el SDM está listo para adjuntarlo al programa.