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 | 获取或设置一个值,该值指示是以十六进制还是以十进制格式输出表达式。 | |
HexInputMode | (继承自 Debugger2。) | |
HexInputMode | 获取或设置一个值,该值指示是以十六进制还是以十进制格式计算表达式。 | |
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 | 获取支持的调试传输的集合。 |
页首
方法
页首
备注
调试器可通过 DTE2 对象的 Debugger 属性获得,如下面的示例所示。 对于交互式开发环境 (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;
}