Debugger3 인터페이스
Debugger3은 디버깅하려는 프로그램과 디버거의 상태를 조사하고 조작하는 데 사용됩니다.Debugger3은 Debugger2 및 Debugger 인터페이스를 대체합니다.
네임스페이스: EnvDTE90
어셈블리: EnvDTE90(EnvDTE90.dll)
구문
‘선언
<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")> _
Public Interface Debugger3 _
Inherits Debugger2
[GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface Debugger3 : Debugger2
[GuidAttribute(L"87DFC8DA-67B4-4954-BB89-6A277A50BAFC")]
public interface class Debugger3 : Debugger2
[<GuidAttribute("87DFC8DA-67B4-4954-BB89-6A277A50BAFC")>]
type Debugger3 =
interface
interface Debugger2
end
public interface Debugger3 extends Debugger2
Debugger3 형식에서는 다음과 같은 멤버를 노출합니다.
속성
이름 | 설명 | |
---|---|---|
AllBreakpointsLastHit | (Debugger2에서 상속됨) | |
AllBreakpointsLastHit | 마지막으로 동시에 적중한 바인딩된 중단점의 컬렉션을 가져옵니다. | |
BreakpointLastHit | (Debugger2에서 상속됨) | |
BreakpointLastHit | 마지막으로 적중한 중단점을 가져옵니다. | |
Breakpoints | (Debugger2에서 상속됨) | |
Breakpoints | 중단점의 컬렉션을 가져옵니다. | |
CurrentMode | (Debugger2에서 상속됨) | |
CurrentMode | IDE의 컨텍스트 내에서 디버거의 현재 모드를 가져옵니다. | |
CurrentProcess | (Debugger2에서 상속됨) | |
CurrentProcess | 활성 프로세스를 가져오거나 설정합니다. | |
CurrentProgram | (Debugger2에서 상속됨) | |
CurrentProgram | 활성 프로그램을 설정하거나 반환합니다. | |
CurrentStackFrame | (Debugger2에서 상속됨) | |
CurrentStackFrame | 현재 스택 프레임을 가져오거나 설정합니다. | |
CurrentThread | (Debugger2에서 상속됨) | |
CurrentThread | 디버깅하고 있는 현재 스레드를 가져오거나 설정합니다. | |
DebuggedProcesses | (Debugger2에서 상속됨) | |
DebuggedProcesses | 현재 디버깅하고 있는 프로세스의 목록을 가져옵니다. | |
DTE | (Debugger2에서 상속됨) | |
DTE | 최상위 확장성 개체를 가져옵니다. | |
ExceptionGroups | 디버거의 예외 설정을 가져옵니다.각 예외에 대해 이러한 설정은 디버거가 실행을 중지하기 전에 코드에서 예외를 처리할 수 있도록 허용하는지 여부를 결정합니다. | |
ForceContinue | 추적점 또는 중단점에서 매크로 실행을 마치면 디버거가 중지되는지 계속 실행되는지 여부를 결정하는 값을 가져오거나 설정합니다.기본 동작은 추적점이나 중단점을 만들 때 사용자가 대화 상자에서 설정합니다.이 속성을 사용하여 기본 동작을 변경할 수 있습니다. | |
HexDisplayMode | (Debugger2에서 상속됨) | |
HexDisplayMode | 식을 16진수 형식으로 출력할지 10진수 형식으로 출력할지 나타내는 값을 가져오거나 설정합니다. | |
HexInputMode | (Debugger2에서 상속됨) | |
HexInputMode | 식을 16진수 형식으로 계산할지 10진수 형식으로 계산할지 나타내는 값을 가져오거나 설정합니다. | |
Languages | (Debugger2에서 상속됨) | |
Languages | 디버거에서 지원하는 언어 목록을 가져옵니다. | |
LastBreakReason | (Debugger2에서 상속됨) | |
LastBreakReason | 프로그램이 멈춘 마지막 원인을 가져옵니다.프로그램이 실행되고 있으면 DBG_REASON_NONE을 반환합니다. | |
LocalProcesses | (Debugger2에서 상속됨) | |
LocalProcesses | 이 컴퓨터에서 현재 실행되고 있는 프로세스의 목록을 가져옵니다. | |
OnlyLoadSymbolsManually | 기호를 수동으로 로드하는지 자동으로 로드하는지를 결정하는 값을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 이 설정을 결정할 수 있습니다.Visual Studio 내에서 이 값을 설정하는 방법에 대한 자세한 내용은 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오. | |
Parent | (Debugger2에서 상속됨) | |
Parent | Debugger3 개체의 직계 개체(DTE2)를 가져옵니다. | |
SymbolCachePath | 기호 서버에서 기호를 다운로드할 때 Visual Studio에서 사용된 기호 캐시의 경로를 포함하는 문자열을 가져옵니다.옵션 대화 상자에서 기호 캐시 경로를 지정할 수 있습니다.자세한 내용은 방법: 기호 서버 사용를 참조하십시오. | |
SymbolPath | Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 경로가 포함된 문자열을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 기호 경로를 지정할 수 있습니다.자세한 내용은 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오. | |
SymbolPathState | Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 모든 기호 경로 상태를 나타내는 문자열을 가져옵니다. | |
Transports | (Debugger2에서 상속됨) | |
Transports | 지원되는 디버깅 전송의 컬렉션을 가져옵니다. |
위쪽
메서드
위쪽
설명
다음 예제와 같이 Debugger 속성을 사용하여 DTE2 개체를 통해 디버거를 사용할 수 있습니다.IDE(대화형 개발 환경)의 각 인스턴스에 대해 하나의 디버거 개체를 사용할 수 있습니다.
예제
Imports System
Imports EnvDTE
Imports EnvDTE90
Imports EnvDTE90
Imports System.Diagnostics
Public Module Module1
'This function returns true if the debugger is actively debugging.
Function IsDebugging() As Boolean
Dim debugger As EnvDTE90.Debugger3
debugger = DTE.Debugger
If (debugger Is Nothing) Then
MsgBox("Debugger doesn't exist! Fatal error.")
IsDebugging = false
Else
IsDebugging = (debugger.CurrentMode <> _
dbgDebugMode.dbgDesignMode)
End If
End Function
End Module
// The following C++ program can be run from the command line.
// It detects whether an instance of Visual Studio is currently
// running,and if so, prints a message stating whether its debugger
// is actively debugging.
#include <stdio.h>
#import "dte90.olb" raw_interfaces_only named_guids
using namespace EnvDTE90;
int main(void)
{
int nRet = 0;
CoInitialize(NULL);
IUnknownPtr pUnk;
GetActiveObject(CLSID_DTE, NULL, &pUnk);
if (pUnk == NULL) {
printf ("No instance of Visual Studio is running.\n");
}
else {
_DTEPtr pDTE = pUnk;
if (pDTE) {
DebuggerPtr pDebugger;
if (SUCCEEDED(pDTE->get_Debugger(&pDebugger3)) &&
pDebugger3
!= NULL){
dbgDebugMode mode;
if (SUCCEEDED(pDebugger3->get_CurrentMode(&mode))) {
if (mode != dbgDesignMode) {
printf("Debugger is active.\n");
nRet = 1;
}
else {
printf("Debugger is not active.\n");
}
}
}
}
}
CoUninitialize();
return nRet;
}