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 | 마지막으로 동시에 적중한 바인딩된 중단점의 컬렉션을 가져옵니다. | |
BreakpointLastHit | 마지막으로 적중한 중단점을 가져옵니다. | |
Breakpoints | 중단점의 컬렉션을 가져옵니다. | |
CurrentMode | IDE의 컨텍스트 내에서 디버거의 현재 모드를 가져옵니다. | |
CurrentProcess | 활성 프로세스를 가져오거나 설정합니다. | |
CurrentProgram | 활성 프로그램을 설정하거나 반환합니다. | |
CurrentStackFrame | 현재 스택 프레임을 가져오거나 설정합니다. | |
CurrentThread | 디버깅하고 있는 현재 스레드를 가져오거나 설정합니다. | |
DebuggedProcesses | 현재 디버깅하고 있는 프로세스의 목록을 가져옵니다. | |
DTE | 최상위 확장성 개체를 가져옵니다. | |
ExceptionGroups | 디버거의 예외 설정을 가져옵니다.각 예외에 대해 이러한 설정은 디버거가 실행을 중지하기 전에 코드에서 예외를 처리할 수 있도록 허용하는지 여부를 결정합니다. | |
ForceContinue | 추적점 또는 중단점에서 매크로 실행을 마치면 디버거가 중지되는지 계속 실행되는지 여부를 결정하는 값을 가져오거나 설정합니다.기본 동작은 추적점이나 중단점을 만들 때 사용자가 대화 상자에서 설정합니다.이 속성을 사용하여 기본 동작을 변경할 수 있습니다. | |
HexDisplayMode | 식을 16진수 형식으로 출력할지 10진수 형식으로 출력할지 나타내는 값을 가져오거나 설정합니다. | |
HexInputMode | 식을 16진수 형식으로 계산할지 10진수 형식으로 계산할지 나타내는 값을 가져오거나 설정합니다. | |
Languages | 디버거에서 지원하는 언어 목록을 가져옵니다. | |
LastBreakReason | 프로그램이 멈춘 마지막 원인을 가져옵니다.프로그램이 실행되고 있으면 DBG_REASON_NONE을 반환합니다. | |
LocalProcesses | 이 컴퓨터에서 현재 실행되고 있는 프로세스의 목록을 가져옵니다. | |
OnlyLoadSymbolsManually | 기호를 수동으로 로드하는지 자동으로 로드하는지를 결정하는 값을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 이 설정을 결정할 수 있습니다.Visual Studio 내에서 이 값을 설정하는 방법에 대한 자세한 내용은 [OBSOLETE] 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오. | |
Parent | Debugger3 개체의 직계 개체(DTE2)를 가져옵니다. | |
SymbolCachePath | 기호 서버에서 기호를 다운로드할 때 Visual Studio에서 사용된 기호 캐시의 경로를 포함하는 문자열을 가져옵니다.옵션 대화 상자에서 기호 캐시 경로를 지정할 수 있습니다.자세한 내용은 [OBSOLETE] 방법: 기호 서버 사용을 참조하십시오. | |
SymbolPath | Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 경로가 포함된 문자열을 가져옵니다.Visual Studio 사용자는 옵션 대화 상자에서 기호 경로를 지정할 수 있습니다.자세한 내용은 [OBSOLETE] 방법: 기호 위치 및 로딩 동작 지정을 참조하십시오. | |
SymbolPathState | Visual Studio에서 디버깅용으로 사용되는 .PDB 기호 파일의 모든 기호 경로 상태를 나타내는 문자열을 가져옵니다. | |
Transports | 지원되는 디버깅 전송의 컬렉션을 가져옵니다. |
위쪽
메서드
이름 | 설명 | |
---|---|---|
Break | 지정된 프로세스의 현재 상태를 분석할 수 있도록 프로세스의 실행을 일시 중지합니다. | |
DetachAll | 연결된 모든 프로그램에서 분리합니다. | |
ExecuteStatement | 지정한 문을 실행합니다.TreatAsExpression 플래그가 true이면 문자열이 식으로 해석되고 출력이 명령 창에 전달됩니다. | |
GetExpression | 현재 스택 프레임을 기초로 식을 계산합니다.식을 구문 분석할 수 있지만 식이 계산되지 않으면 유효한 값이 들어 있지 않은 개체가 반환됩니다. | |
GetExpression2 | 현재 스택 프레임을 기초로 식을 계산합니다.식을 구문 분석할 수 있지만 식이 계산되지 않으면 유효한 값이 들어 있지 않은 개체가 반환됩니다.이 멤버 함수는 GetExpression과 비슷하지만, 식을 문으로 계산함을 나타내도록 true로 설정할 수 있는 추가 부울 매개 변수를 포함합니다. | |
GetProcesses | ||
Go | 현재 문에서 프로그램 실행을 시작합니다. | |
RunToCursor | 소스 파일 커서의 현재 위치까지 프로그램을 실행합니다. | |
SetNextStatement | 현재 소스 파일에서 커서의 위치에 따라 실행될 다음 명령을 설정합니다. | |
SetSymbolSettings | Visual Studio에서 사용하는 .PDB 기호에 대해 다양한 설정을 지정하고 모든 기호를 강제로 다시 로드합니다. | |
StepInto | 가능한 경우 다음 함수 호출에 대해 한 단계씩 코드를 실행합니다. | |
StepOut | 현재 함수에서 나갑니다. | |
StepOver | 다음 함수 호출을 프로시저 단위로 실행합니다. | |
Stop | 디버깅을 중지하고 종료하거나 모든 연결된 프로세스에서 분리합니다. | |
TerminateAll | 현재 실행 중인 디버깅 프로세스를 모두 종료합니다. | |
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;
}