Programme
In der Debugger-Architektur ist ein Programm :
Ist ein Container für einen Satz von Threads und einen Satz von Modulen. Ein Programm hat keine einzige Entsprechung im Windows-Betriebssystem.
Ein Programm ist eine Art Unterprozess. Wenn Sie zum Beispiel eine Website debuggen, kann ein Skript als ein Programm angesehen werden. Während ein Skript unabhängig von anderen Skripten im Prozess der Skripting-Engine läuft, hat es auch seine eigenen Threads. Eine Debug-Engine (DE) ist an ein Programm und nicht an einen Prozess oder einen Thread gebunden.
Kann sich selbst und den Prozess, in dem er läuft, identifizieren. Ein Programm kann dem DE, das es erstellt hat, angehängt werden, von ihm abgetrennt werden und es beschreiben, falls vorhanden. Ein Programm kann auch ausgeführt, angehalten, fortgesetzt und abgebrochen werden.
Kann alle seine Threads aufzählen. Ein Programm kann auch seinen eigenen Disassemblierungsstrom liefern und alle Codekontexte einer bestimmten Dokumentposition aufzählen.
Wird durch eine Schnittstelle IDebugProgram2 dargestellt, die je nach Implementierung vor dem Anhängen des Programms oder als Teil des Anhängevorgangs erstellt wird. Wenn ein Port die Programme eines Prozesses aufzählt, wird jedes Programm in Übereinstimmung mit einer entsprechenden IDebugProgramNode2-Schnittstelle erstellt, die als Argument an AddProgramNode übergeben wird. Während Debug-Engines auch
IDebugProgram2
-Schnittstellen zur Darstellung von Programmen erstellen, werden diese Programme nicht in Übereinstimmung mit einem Programmknoten erstellt. Die von einem DE erstelltenIDebugProgramNode2
-Schnittstellen werden für das eigentliche Debugging verwendet, während die von einem Port erstellten Schnittstellen nur dazu dienen, herauszufinden, welche Programme in einem Prozess laufen.