Core 인터페이스

다음 인터페이스는 Visual Studio SDK를 사용하여 디버거를 확장하기 위한 핵심 인터페이스입니다.

토론(Discussion)

이러한 인터페이스는 주로 DE(디버그 엔진)를 만드는 데 사용됩니다. 다음 범주에 따라 분류됩니다.

중단점

이러한 인터페이스는 중단점의 구현 및 추적과 관련이 있습니다.

인터페이스 구현자 설명
IDebugBoundBreakpoint2 DE 메모리 위치에 바인딩된 중단점을 나타냅니다.
IDebugBreakpointBoundEvent2 DE 중단점이 메모리 위치에 바인딩될 때 DE에 의해 전송됩니다.
IDebugBreakpointChecksumRequest2 VS 중단점 요청에 대한 문서 체크섬을 나타냅니다.
IDebugBreakpointErrorEvent2 DE 중단점이 메모리 위치에 바인딩되지 못할 때 DE에 의해 전송됩니다.
IDebugBreakpointEvent2 DE 중단점에 도달하면 DE에 의해 전송됩니다.
IDebugBreakpointRequest2 VS 중단점 요청을 나타내며, 보류 중인 중단점을 만드는 데 사용됩니다.
IDebugBreakpointRequest3 VS 중단점 요청을 나타내며, 보류 중인 중단점을 만드는 데 사용됩니다.
IDebugBreakpointResolution2 DE 중단점을 바인딩하는 데 사용되는 정보를 나타냅니다.
IDebugBreakpointUnboundEvent2 DE 중단점이 메모리 위치에서 바인딩 해제될 때 DE에 의해 전송됩니다.
IDebugErrorBreakpoint2 DE 잘못된 중단점(IDebugBreakpointErrorEvent2에 의해 반환됨)을 나타냅니다.
IDebugErrorBreakpointResolution2 DE 잘못된 중단점에 대한 해결 정보를 나타냅니다.
IDebugFunctionPosition2 DE 중단점이 설정된 함수 위치를 나타냅니다.
IDebugPendingBreakpoint2 DE 바인딩할 중단점을 나타내며, 바인딩된 중단점을 만드는 데 사용됩니다.
IEnumDebugBoundBreakpoints2 DE 바인딩된 중단점 세트에 대한 열거형을 나타냅니다.
IEnumDebugErrorBreakpoints2 DE 메모리 위치에 바인딩할 수 없는 중단점 세트에 대한 열거형을 나타냅니다.

컨텍스트

이러한 인터페이스는 디버그 중인 프로그램 내에서 다양한 종류의 컨텍스트를 나타냅니다.

인터페이스 구현자 설명
IDebugCodeContext2 DE 코드 명령의 시작 위치를 나타냅니다.
IDebugCodeContext3 DE IDebugCodeContext2 인터페이스를 확장하여 모듈 및 프로세스 인터페이스를 검색할 수 있도록 합니다.
IDebugDocumentContext2 VS, DE 문서에서의 위치를 나타냅니다.
IDebugExpressionContext2 DE 식을 평가할 컨텍스트를 나타냅니다.
IDebugMemoryContext2 DE 바이트 컬렉션 메모리의 시작 위치를 나타냅니다.
IDebugStackFrame2 DE 중단점 또는 예외의 스택 프레임 컨텍스트를 나타냅니다.
IDebugStackFrame3 DE 중단점 또는 예외의 스택 프레임 컨텍스트를 나타냅니다.
IEnumDebugCodeContexts2 DE 코드 컨텍스트 세트에 대한 열거형을 나타냅니다.

핵심 서버

이러한 인터페이스는 프로그램을 디버그 중인 컴퓨터를 나타냅니다. Visual Studio에서 구현되지만 디버그 엔진으로 호출할 수 있습니다.

인터페이스 구현자 설명
IDebugCoreServer2 VS 포트 및 포트 공급자에 대한 액세스뿐만 아니라 컴퓨터에 대한 정보를 제공합니다.
IDebugCoreServer3 VS 원격 디버깅을 지원하는 IDebugCoreServer2를 나타냅니다.

디버그 엔진

이러한 인터페이스는 디버그 엔진 및 관련 이벤트를 나타냅니다.

인터페이스 구현자 설명
IDebugEngine2 DE 사용자 지정 디버그 엔진을 나타냅니다.
IDebugEngine3 DE 기호, JustMyCode 및 예외에 대한 로드를 지원하는 사용자 지정 디버그 엔진을 나타냅니다.
IDebugEngineCreateEvent2 DE 디버깅 작업을 처리할 준비가 되었음을 나타내기 위해 DE의 각 새 인스턴스에서 전송됩니다.
IDebugEngineLaunch2 DE 프로그램 시작을 지원하는 사용자 지정 디버그 엔진을 나타냅니다.
IDebugProgramEngines2 DE, PS 여러 디버그 엔진을 처리하는 프로그램 노드를 나타냅니다.
IDebugQueryEngine2 DE SDM이 스레드, 프로그램 또는 스택 프레임에서 디버그 엔진에 대한 인터페이스를 가져오는 방법을 제공합니다.

문서

이러한 인터페이스는 문서(원본 파일) 및 관련 요소를 나타냅니다.

인터페이스 구현자 설명
IDebugActivateDocumentEvent2 DE 문서를 열도록 요청하기 위해 DE에서 전송됩니다.
IDebugDisassemblyStream2 DE 문서에서 디스어셈블된 명령의 스트림을 나타냅니다.
IDebugDocument2 VS, DE 이름 및 CLSID(클래스 ID)를 지정하는 DE에서 제공된 문서를 나타냅니다.
IDebugDocumentChecksum2 DE, EE 디버그 문서의 체크섬을 나타내며 구성 요소 간에 체크섬을 전달할 수 있습니다.
IDebugDocumentContext2 VS, DE 문서 컨텍스트, 특정 문 및 코드 컨텍스트에 해당하는 문서 내의 위치를 나타냅니다.
IDebugDocumentPosition2 VS, DE 문서 내의 일반 위치를 나타냅니다.
IDebugDocumentPositionOffset2 VS 소스 파일의 위치를 문자 오프셋으로 나타냅니다.
IDebugDocumentText2 VS, DE 실제 텍스트를 제공하는 DE에서 제공하는 텍스트 문서(IDebugDocument2에서 파생됨)를 나타냅니다.
IDebugDocumentTextEvents2 DE 메모리에 있는 원본 파일의 변경 내용을 지정하기 위해 DE에서 전송됩니다.

이벤트

이러한 인터페이스는 DE와 SDM(세션 디버그 관리자) 간에 전송되는 모든 이벤트를 나타냅니다.

인터페이스 구현자 설명
IDebugActivateDocumentEvent2 DE 문서를 열도록 요청하기 위해 DE에서 전송됩니다.
IDebugBeforeSymbolSearchEvent2 DE DE(디버그 엔진)는 이 인터페이스를 SDM(세션 디버그 관리자)에 보내 기호를 로드하는 동안 상태 표시줄 메시지를 설정합니다.
IDebugBreakEvent2 DE 프로그램에서 중단이 완료되면 DE에서 전송됩니다.
IDebugBreakpointBoundEvent2 DE 중단점에 도달하면 DE에서 전송됩니다.
IDebugBreakpointErrorEvent2 DE 중단점이 바인딩되지 않을 때 DE에서 전송됩니다.
IDebugBreakpointEvent2 DE 중단점에 도달하면 DE에 의해 전송됩니다.
IDebugBreakpointUnboundEvent2 DE 중단점이 바인딩되지 않았을 때 DE에서 전송됩니다.
IDebugCanStopEvent2 DE 특정 위치에서 중지해야 하는지 여부를 결정하기 위해 DE에서 전송됩니다.
IDebugDocumentTextEvents2 DE 메모리에 있는 원본 파일의 변경 내용을 지정하기 위해 DE에서 전송됩니다.
IDebugEngineCreateEvent2 DE 디버깅 작업을 처리할 준비가 되었음을 나타내기 위해 DE의 각 새 인스턴스에서 전송됩니다.
IDebugEntryPointEvent2 DE 디버그 중인 프로그램이 첫 번째 명령을 실행할 준비가 되었음을 나타내기 위해 DE에서 전송됩니다.
IDebugErrorEvent2 DE 사람이 읽을 수 있는 오류 메시지를 제공하기 위해 오류를 반환할 수 있는 다른 이벤트 인터페이스에서 사용되는 인터페이스입니다.
IDebugEvent2 DE, PS 다른 모든 이벤트 인터페이스가 파생되는 기본 인터페이스입니다.
IDebugEventCallback2 VS 이벤트(특정 이벤트 인터페이스를 구현하는 개체로 표시됨)가 전송되는 SDM이 구현하는 인터페이스를 나타냅니다.
IDebugExceptionEvent2 DE 디버그 중인 프로그램에서 예외가 발생한 경우 DE에서 전송됩니다.
IDebugExpressionEvaluationCompleteEvent2 DE 비동기 식 계산이 완료되면 DE에서 전송됩니다.
IDebugFindSymbolEvent2 사용되지 않습니다. 사용하지 마십시오.
IDebugInterceptExceptionCompleteEvent2 DE 가로챈 예외에 대한 처리가 완료된 경우 DE에서 전송됩니다.
IDebugLoadCompleteEvent2 DE 프로그램 로드가 완료되면 DE에서 전송됩니다.
IDebugMessageEvent2 DE IDE가 사용자에게 정보 메시지를 표시하도록 DE에서 전송됩니다.
IDebugModuleLoadEvent2 DE 모듈이 로드되거나 언로드될 때 DE에서 전송됩니다.
IDebugNoSymbolsEvent2 DE Visual Studio 디버거 UI에 신호를 보내 시작된 실행 파일에 대한 기호를 찾을 수 없음을 사용자에게 경고합니다.
IDebugOutputStringEvent2 DE IDE가 임의의 문자열을 표시하도록 DE에서 전송됩니다.
IDebugPortEvents2 VS, DE 모든 수신기에 포트 이벤트를 통신하기 위해 포트에서 전송됩니다.
IDebugProcessCreateEvent2 DE, PS 프로세스가 생성되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProcessDestroyEvent2 DE, PS 프로세스가 삭제되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProgramCreateEvent2 DE, PS 프로그램이 생성되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProgramDestroyEvent2 DE, PS 프로그램이 삭제되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProgramDestroyEventFlags2 DE 디버그 세션을 종료할 때 디버그 엔진이 Visual Studio UI의 기본 동작을 재정의할 수 있도록 합니다.
IDebugProgramNameChangedEvent2 DE 프로그램 이름이 변경되면 DE(디버그 엔진)에서 SDM(세션 디버그 관리자)로 전송됩니다.
IDebugPropertyCreateEvent2 DE 새 속성(IDebugProperty2 인터페이스로 표시됨)이 생성되었을 때 DE에서 전송됩니다.
IDebugPropertyDestroyEvent2 DE 속성이 삭제되었을 때 DE에서 전송됩니다.
IDebugReturnValueEvent2 DE 반환 값을 올바르게 표시할 수 있도록 함수 나가기 또는 함수 단위 실행을 수행할 DE에서 전송됩니다.
IDebugSettingsCallback2 VS 디버그 엔진이 메트릭 설정을 원격으로 읽을 수 있도록 합니다.
IDebugStepCompleteEvent2 DE 명령에 대한 한 단계씩 실행, 단위 실행 또는 나가기가 완료되었을 때 DE에서 전송됩니다.
IDebugSymbolSearchEvent2 DE 모듈에 대한 기호 로드의 성공 또는 실패를 나타내기 위해 DE에서 전송됩니다.
IDebugThreadCreateEvent2 DE 스레드가 생성되었을 때 DE에서 전송됩니다.
IDebugThreadDestroyEvent2 DE 스레드가 삭제되었을 때 DE에서 전송됩니다.
IDebugThreadNameChangedEvent2 DE 스레드가 해당 이름을 변경했을 때 DE에서 전송됩니다.

이러한 인터페이스는 특정 컨텍스트에서 평가할 식을 나타냅니다.

인터페이스 구현자 설명
IDebugExpression2 DE 평가할 식을 나타냅니다. IDebugExpressionContext2 인터페이스에서 가져옵니다.
IDebugExpressionContext2 DE 식이 평가되는 컨텍스트를 나타냅니다. IDebugStackFrame2 인터페이스에서 가져옵니다.
IDebugExpressionEvaluationCompleteEvent2 DE 비동기 식 계산이 완료되면 DE에서 전송됩니다.

메모리

이러한 인터페이스는 메모리의 바이트 시퀀스를 나타냅니다.

인터페이스 구현자 설명
IDebugMemoryBytes2 DE 메모리에서 읽거나 쓸 수 있는 바이트 시퀀스를 나타냅니다.
IDebugMemoryContext2 DE 메모리에서 바이트 시퀀스의 위치를 나타냅니다.

모듈

이러한 인터페이스는 실행 파일 또는 .DLL 파일에 해당하는 모듈을 나타냅니다.

인터페이스 구현자 설명
IDebugModule2 DE 단일 실행 파일 또는 DLL을 나타냅니다.
IDebugModule3 DE 기호를 지원하는 IDebugModule2를 나타냅니다.
IDebugModuleLoadEvent2 DE 모듈이 로드되거나 언로드될 때 DE에서 전송됩니다.
IDebugSourceServerModule DE PDB 파일에 포함된 원본 서버 정보를 나타냅니다.
IEnumDebugModules2 DE IDebugProgram2로 알려진 모듈 세트에 대한 열거형을 나타냅니다.

Ports

이러한 인터페이스는 포트 및 포트 공급자를 나타냅니다.

인터페이스 구현자 설명
IDebugDefaultPort2 VS, PS 로컬 컴퓨터의 기본 포트를 나타냅니다.
IDebugFirewallConfigurationCallback2 VS DCOM을 사용하여 Visual Studio UI에 방화벽이 원격 디버깅을 차단하지 않도록 요청하는 디버그 엔진을 사용하도록 설정합니다.
IDebugPort2 VS, PS 포트를 나타냅니다.
IDebugPortEvents2 PS 모든 수신기에 포트 이벤트를 통신하기 위해 포트에서 전송됩니다.
IDebugPortEx2 PS 프로세스를 시작하고 종료할 수 있는 포트를 나타냅니다.
IDebugPortNotify2 PS 포트를 사용하여 프로그램을 등록 및 등록 해제하는 데 사용됩니다. 포트가 현재 디버그 중인 프로그램을 추적할 수 있습니다.
IDebugPortPicker PS 포트를 선택하기 위한 사용자 지정된 UI를 나타냅니다.
IDebugPortRequest2 VS 새 포트를 만들거나 배치할 포트에 대한 요청을 나타냅니다.
IDebugPortSupplier2 PS 포트 공급자를 나타냅니다.
IDebugPortSupplier3 PS 생성된 포트에 대한 정보를 유지(디스크에 저장)할 수 있는 포트 공급자를 나타냅니다.
IDebugPortSupplierDescription2 PS Visual Studio UI가 프로세스에 연결 대화 상자의 전송 정보 섹션 내에서 텍스트를 표시할 수 있도록 합니다.
IDebugWindowsComputerPort2 VS 대상 컴퓨터에 대한 정보를 쿼리할 수 있습니다.
IEnumDebugPorts2 VS, PS 포트 세트에 대한 열거형을 나타냅니다.
IEnumDebugPortSuppliers2 VS 포트 공급자 세트에 대한 열거형을 나타냅니다.

프로세스

이러한 인터페이스는 하나 이상의 프로그램을 포함하는 단일 실행 파일인 프로세스를 나타냅니다.

인터페이스 구현자 설명
IDebugProcess2 PS, DE 원격 컴퓨터에서 실행 중인 프로세스를 나타냅니다.
IDebugProcess3 PS, DE 디버깅을 적극적으로 지원하는 프로세스를 나타냅니다(IDebugProgram2 인터페이스에서 Step, Continue 및 Execute 메서드 대신 사용).
IDebugProcessCreateEvent2 DE, PS 프로세스가 생성되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProcessDestroyEvent2 DE, PS 프로세스가 삭제되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProcessEx2 PS 연결된 세션을 추적해야 하는 프로세스를 나타냅니다.
IEnumDebugProcesses2 PS 포트에 있는 프로세스 세트에 대한 열거형을 나타냅니다.

프로그램

이러한 인터페이스는 실제 실행 파일 또는 모듈에 반드시 해당할 필요가 없는 프로그램, 논리적 실행 단위를 나타냅니다.

인터페이스 구현자 설명
IDebugEngineProgram2 DE 동시에 디버그되는 다른 프로그램과 함께 작동해야 하는 IDebugProgram2를 나타냅니다.
IDebugProgram2 DE, PS 논리적 실행 단위를 나타냅니다.
IDebugProgramCreateEvent2 DE, PS 프로그램이 생성되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProgramDestroyEvent2 DE, PS 프로그램이 삭제되었을 때 DE 또는 포트에서 전송됩니다.
IDebugProgramEngines2 DE, PS 여러 디버그 엔진에서 처리할 수 있는 IDebugProgramNode2를 나타냅니다.
IDebugProgramEx2 PS 연결된 세션을 추적할 수 있어야 하는 IDebugProgram2를 나타냅니다.
IDebugProgramHost2 DE, PS 실행 중인 프로세스에 대한 정보를 반환할 수 있는 IDebugProgram2를 나타냅니다.
IDebugProgramNode2 DE, PS 디버그할 수 있는 프로그램을 나타냅니다.
IDebugProgramNodeAttach2 DE, PS 프로그램 노드가 연결된 프로그램에 연결하려는 시도에 대한 알림을 받을 수 있습니다.
IDebugProgramProvider2 DE SDM이 해당 DE에서 제어하는 프로그램에 대해 DE를 쿼리하는 방법을 제공합니다.
IDebugProgramPublisher2 VS DE에서 프로그램을 SDM에 등록하여 디버그 중임을 표시하기 위해 사용됩니다.
IDebugProviderProgramNode2 DE, PS 스레드 또는 프로세스 경계를 넘어 인터페이스를 마샬링할 수 있는 IDebugProgramNode2를 나타냅니다.
IEnumDebugPrograms2 DE, PS 프로그램 세트의 열거형을 나타냅니다.

속성

이러한 인터페이스는 속성, 특정 컨텍스트와 연결된 값, 일반적으로 식 평가의 결과를 나타냅니다.

인터페이스 구현자 설명
IDebugCustomViewer EE 사용자 지정 방식으로 값을 표시할 수 있는 IDebugProperty2를 나타냅니다.
IDebugProperty2 DE 스택 프레임, 문서 또는 식 계산 결과의 값을 나타냅니다.
IDebugProperty3 DE 임의로 긴 문자열을 지원하는 IDebugProperty2를 나타냅니다.
IDebugPropertyCreateEvent2 DE 새 속성(IDebugProperty2 인터페이스로 표시됨)이 생성되었을 때 DE에서 전송됩니다.
IDebugPropertyDestroyEvent2 DE 속성이 삭제되었을 때 DE에서 전송됩니다.
IDebugReference2 DE 특정 스택 프레임 외부에 존재할 수 있는 속성에 대한 참조를 나타냅니다.
IEnumDebugPropertyInfo2 DE 변수, 레지스터, 매개 변수 및 식을 설명하는 DEBUG_PROPERTY_INFO 구조체 세트에 대한 열거형을 나타냅니다.
IEnumDebugReferenceInfo2 DE DEBUG_REFERENCE_INFO 구조체 세트에 대한 열거형을 나타냅니다.

스택 프레임

이러한 인터페이스는 중단점 또는 예외가 발생한 컨텍스트인 스택 프레임을 나타냅니다.

인터페이스 구현자 설명
IDebugStackFrame2 DE 중단점 또는 예외가 발생한 컨텍스트를 나타냅니다.
IDebugStackFrame3 DE 가로챈 예외를 처리할 수 있는 IDebugStackFrame2를 나타냅니다.
IEnumCodePaths2 DE 특정 스택 프레임에 도착하기 위해 사용되는 함수 호출 시퀀스를 지정하는 CODE_PATH 구조체 세트에 대한 열거형을 나타냅니다.
IEnumDebugFrameInfo2 DE 스택 프레임을 설명하는 FRAMEINFO 구조체 세트에 대한 열거형을 나타냅니다.

스레드

이러한 인터페이스는 스레드 및 관련 이벤트를 나타냅니다.

인터페이스 구현자 설명
IDebugThread2 DE 실행 스레드를 나타냅니다.
IDebugThreadCreateEvent2 DE 스레드가 생성되었을 때 DE에서 전송됩니다.
IDebugThreadDestroyEvent2 DE 스레드가 삭제되었을 때 DE에서 전송됩니다.
IDebugThreadNameChangedEvent2 DE 스레드가 해당 이름을 변경했을 때 DE에서 전송됩니다.
IEnumDebugThreads2 DE 스레드 세트에 대한 열거형을 나타냅니다.

형식 시각화 도우미

이러한 인터페이스는 형식 시각화 도우미 지원을 제공합니다. 이러한 인터페이스는 일반적으로 식 계산기에서 구현됩니다.

인터페이스 구현자 설명
IEEDataStorage EE 형식 시각화 도우미에 표시할 바이트 배열을 나타냅니다.
IPropertyProxyEESide EE 형식 시각화 도우미에 전달할 데이터에 대한 액세스를 가져오는 메서드를 제공합니다.
IPropertyProxyProvider EE IPropertyProxyEESide 구현에 대한 액세스를 제공하는 속성을 나타냅니다.

참고 항목