프로그램
디버거 아키텍처에서 프로그램은 다음과 같습니다.
스레드 집합과 모듈 집합 모두에 대한 컨테이너입니다. 프로그램에는 Windows 운영 체제에서의 단일 비유가 없습니다.
프로그램은 일종의 하위 프로세스입니다. 예를 들어 웹 사이트를 디버깅할 때 스크립트를 프로그램으로 볼 수 있습니다. 스크립트는 다른 스크립트와 관계없이 스크립팅 엔진 프로세스에서 실행되지만 자체 스레드 집합도 있습니다. DE(디버그 엔진)은 프로세스나 스레드가 아닌 프로그램에 연결됩니다.
자체 및 실행 중인 프로세스를 식별할 수 있습니다. 프로그램을 연결하고, 분리하고, 프로그램을 만든 DE(있는 경우)를 설명할 수 있습니다. 프로그램을 실행, 중지, 계속 및 종료할 수도 있습니다.
모든 스레드를 열거할 수 있습니다. 또한 프로그램은 자체 디스어셈블리 스트림을 제공할 수 있으며 지정된 문서 위치의 모든 코드 컨텍스트를 열거할 수 있습니다.
프로그램이 연결되기 전에 만든 IDebugProgram2 인터페이스로 표현되거나 구현에 따라 연결 프로세스의 일부로 표시됩니다. 포트가 프로세스의 프로그램을 열거할 때 AddProgramNode에 인수로 전달된 해당 IDebugProgramNode2 인터페이스에 따라 각 프로그램이 만들어집니다. 디버그 엔진은 프로그램을 나타내기 위해
IDebugProgram2
인터페이스도 만들지만 이러한 프로그램은 프로그램 노드에 따라 생성되지 않습니다. DE에서 만든IDebugProgramNode2
인터페이스는 실제 디버깅에 사용되며, 포트에서 만든 인터페이스는 프로세스에서 실행 중인 프로그램을 검색하는 데에만 사용됩니다.