Programmes
Dans l’architecture de débogage, un programme :
Est un conteneur à la fois pour un ensemble de threads et un ensemble de modules. Un programme n’a pas d’analogie unique dans le système d’exploitation Windows.
Un programme est une sorte de sous-processus. Par exemple, lorsque vous déboguez un site Web, un script peut être considéré comme un programme. Bien qu’un script s’exécute dans le processus du moteur de script, indépendamment des autres scripts, il possède également son propre ensemble de threads. Un moteur de débogage (DE) se connecte à un programme, et non à un processus ou à un thread.
Peut s’identifier lui-même et le processus dans lequel il s’exécute. Un programme peut être attaché à, être détaché de, et décrire le DE qui l’a créé, le cas échéant. Un programme peut également être exécuté, arrêté, continué et terminé.
Peut énumérer tous ses threads. Un programme peut également fournir son propre flux de désassemblage et peut énumérer tous les contextes de code d’une position de document donnée.
Est représenté par une interface IDebugProgram2, créée avant que le programme ne soit attaché, ou dans le cadre du processus d’attachement, selon l’implémentation. Lorsqu’un port énumère les programmes d’un processus, chaque programme est créé conformément à une interface IDebugProgramNode2 correspondante passée en argument à AddProgramNode. Bien que les moteurs de débogage créent également des interfaces
IDebugProgram2
pour représenter des programmes, ces programmes ne sont pas créés conformément à un nœud de programme. Les interfacesIDebugProgramNode2
créées par un DE sont utilisées pour le débogage réel, tandis que celles créées par un port ne sont utilisées que pour découvrir quels programmes s’exécutent dans un processus.