다음을 통해 공유


Debugger3 인터페이스

Debugger3은 디버깅하려는 프로그램과 디버거의 상태를 조사하고 조작하는 데 사용됩니다. Debugger3은 Debugger2Debugger 인터페이스를 대체합니다.

네임스페이스:  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 형식에서는 다음과 같은 멤버를 노출합니다.

속성

  이름 설명
Public 속성 AllBreakpointsLastHit 마지막으로 동시에 적중한 바인딩된 중단점의 컬렉션을 가져옵니다.
Public 속성 BreakpointLastHit 마지막으로 적중한 중단점을 가져옵니다.
Public 속성 Breakpoints 중단점의 컬렉션을 가져옵니다.
Public 속성 CurrentMode IDE의 컨텍스트 내에서 디버거의 현재 모드를 가져옵니다.
Public 속성 CurrentProcess 활성 프로세스를 가져오거나 설정합니다.
Public 속성 CurrentProgram 활성 프로그램을 설정하거나 반환합니다.
Public 속성 CurrentStackFrame 현재 스택 프레임을 가져오거나 설정합니다.
Public 속성 CurrentThread 디버깅하고 있는 현재 스레드를 가져오거나 설정합니다.
Public 속성 DebuggedProcesses 현재 디버깅하고 있는 프로세스의 목록을 가져옵니다.
Public 속성 DTE 최상위 확장성 개체를 가져옵니다.
Public 속성 ExceptionGroups 디버거의 예외 설정을 가져옵니다.각 예외에 대해 이러한 설정은 디버거가 실행을 중지하기 전에 코드에서 예외를 처리할 수 있도록 허용하는지 여부를 결정합니다.
Public 속성 ForceContinue 추적점 또는 중단점에서 매크로 실행을 마치면 디버거가 중지되는지 계속 실행되는지 여부를 결정하는 값을 가져오거나 설정합니다.기본 동작은 추적점이나 중단점을 만들 때 사용자가 대화 상자에서 설정합니다.이 속성을 사용하여 기본 동작을 변경할 수 있습니다.
Public 속성 HexDisplayMode 식을 16진수 형식으로 출력할지 10진수 형식으로 출력할지 나타내는 값을 가져오거나 설정합니다.
Public 속성 HexInputMode 식을 16진수 형식으로 계산할지 10진수 형식으로 계산할지 나타내는 값을 가져오거나 설정합니다.
Public 속성 Languages 디버거에서 지원하는 언어 목록을 가져옵니다.
Public 속성 LastBreakReason 프로그램이 멈춘 마지막 원인을 가져옵니다.프로그램이 실행되고 있으면 DBG_REASON_NONE을 반환합니다.
Public 속성 LocalProcesses 이 컴퓨터에서 현재 실행되고 있는 프로세스의 목록을 가져옵니다.
Public 속성 OnlyLoadSymbolsManually 기호를 수동으로 로드하는지 자동으로 로드하는지를 결정하는 값을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 이 설정을 결정할 수 있습니다.Visual Studio 내에서 이 값을 설정하는 방법에 대한 자세한 내용은 [OBSOLETE] 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오.
Public 속성 Parent Debugger3 개체의 직계 개체(DTE2)를 가져옵니다.
Public 속성 SymbolCachePath 기호 서버에서 기호를 다운로드할 때 Visual Studio에서 사용된 기호 캐시의 경로를 포함하는 문자열을 가져옵니다.옵션 대화 상자에서 기호 캐시 경로를 지정할 수 있습니다.자세한 내용은 [OBSOLETE] 방법: 기호 서버 사용을 참조하십시오.
Public 속성 SymbolPath Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 경로가 포함된 문자열을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 기호 경로를 지정할 수 있습니다.자세한 내용은 [OBSOLETE] 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오.
Public 속성 SymbolPathState Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 모든 기호 경로 상태를 나타내는 문자열을 가져옵니다.
Public 속성 Transports 지원되는 디버깅 전송의 컬렉션을 가져옵니다.

위쪽

메서드

  이름 설명
Public 메서드 Break 지정된 프로세스의 현재 상태를 분석할 수 있도록 프로세스의 실행을 일시 중지합니다.
Public 메서드 DetachAll 연결된 모든 프로그램에서 분리합니다.
Public 메서드 ExecuteStatement 지정한 문을 실행합니다.TreatAsExpression 플래그가 true이면 문자열이 식으로 해석되고 출력이 명령 창에 전달됩니다.
Public 메서드 GetExpression 현재 스택 프레임을 기초로 식을 계산합니다.식을 구문 분석할 수 있지만 식이 계산되지 않으면 유효한 값이 들어 있지 않은 개체가 반환됩니다.
Public 메서드 GetExpression2 현재 스택 프레임을 기초로 식을 계산합니다.식을 구문 분석할 수 있지만 식이 계산되지 않으면 유효한 값이 들어 있지 않은 개체가 반환됩니다.이 멤버 함수는 GetExpression과 비슷하지만, 식을 문으로 계산함을 나타내도록 true로 설정할 수 있는 추가 부울 매개 변수를 포함합니다.
Public 메서드 GetProcesses
Public 메서드 Go 현재 문에서 프로그램 실행을 시작합니다.
Public 메서드 RunToCursor 소스 파일 커서의 현재 위치까지 프로그램을 실행합니다.
Public 메서드 SetNextStatement 현재 소스 파일에서 커서의 위치에 따라 실행될 다음 명령을 설정합니다.
Public 메서드 SetSymbolSettings Visual Studio에서 사용하는 .PDB 기호에 대해 다양한 설정을 지정하고 모든 기호를 강제로 다시 로드합니다.
Public 메서드 StepInto 가능한 경우 다음 함수 호출에 대해 한 단계씩 코드를 실행합니다.
Public 메서드 StepOut 현재 함수에서 나갑니다.
Public 메서드 StepOver 다음 함수 호출을 프로시저 단위로 실행합니다.
Public 메서드 Stop 디버깅을 중지하고 종료하거나 모든 연결된 프로세스에서 분리합니다.
Public 메서드 TerminateAll 현재 실행 중인 디버깅 프로세스를 모두 종료합니다.
Public 메서드 WriteMinidump

위쪽

설명

다음 예제와 같이 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;
}

참고 항목

참조

EnvDTE90 네임스페이스