Programme

In der Debuggerarchitektur ein Programm:

  • Ein Container für eine Gruppe von Threads und eine Gruppe von Modulen. Ein Programm verfügt über keine einzelne Analogie im Windows Betriebssystem.

    Ein Programm ist eine Art Unterprozess. Wenn Sie beispielsweise eine Website debuggen, kann ein Skript als Programm angezeigt werden. Während ein Skript unabhängig von anderen Skripts im Skript-Engine-Prozess ausgeführt wird, verfügt es auch über einen eigenen Satz von Threads. Eine Debug-Engine (DE) wird an ein Programm und nicht an einen Prozess oder Thread angefügt.

  • Kann sich selbst und den Prozess identifizieren, in dem er ausgeführt wird. Ein Programm kann angefügt, von diesem getrennt werden und die DE beschreiben, von der es erstellt wurde (falls möglich). Ein Programm kann auch ausgeführt, beendet, fortgesetzt und beendet werden.

  • Kann alle threads aufzählen. Ein Programm kann auch einen eigenen Disassemblierungsstream liefern und alle Codekontexte einer bestimmten Dokumentposition aufzählen.

  • Wird durch eine IDebugProgram2-Schnittstelle dargestellt, die erstellt wurde, bevor das Programm angefügt wird, oder als Teil des Anfügens, je nach Implementierung. 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. Debug-Engines erstellen zwar auch Schnittstellen zur Darstellung von Programmen, diese Programme werden jedoch nicht in Übereinstimmung mit IDebugProgram2 einem Programmknoten erstellt. Die von einer DE erstellten Schnittstellen werden für das eigentliche Debuggen verwendet, während die von einem Port erstellten Schnittstellen nur verwendet werden, um zu finden, welche Programme IDebugProgramNode2 in einem Prozess ausgeführt werden.

Siehe auch