核心接口

使用 Visual Studio SDK,下面的接口会扩展调试器的核心接口。

讨论

这些接口主要用于创建调试引擎 (DE)。 按类别组织示:

  • 断点

  • 上下文

  • 核心服务器

  • 调试引擎

  • 文档

  • 事件

  • 表达式

  • 内存

  • 模块

  • 端口

  • 进程

  • 程序

  • 属性

  • 堆栈帧

  • 线程

  • 键入可视化工具

可以实现接口的实体是:

  • 调试引擎 (DE)

  • 端口提供程序 (PS)

  • 表达式计算器 (EE)

  • Visual Studio (VS)

断点

这些接口与实现和跟踪断点相关。

接口

实现

说明

IDebugBoundBreakpoint2

DE

表示断点绑定到内存位置。

IDebugBreakpointBoundEvent2

DE

发送由 DE,当断点绑定到内存位置。

IDebugBreakpointChecksumRequest2

表示断点请求的文档校验和。

IDebugBreakpointErrorEvent2

DE

发送由 DE,当断点也可以绑定到内存位置。

IDebugBreakpointEvent2

DE

发送由 DE,当断点为止。

IDebugBreakpointRequest2

表示对断点;使用在创建挂起的断点。

IDebugBreakpointRequest3

表示对断点;使用在创建挂起的断点。

IDebugBreakpointResolution2

DE

表示用于的信息绑定断点。

IDebugBreakpointUnboundEvent2

DE

发送由 DE,当断点从内存位置为未绑定。

IDebugErrorBreakpoint2

DE

表示无效断点 (返回 IDebugBreakpointErrorEvent2)。

IDebugErrorBreakpointResolution2

DE

表示有关无效断点的分辨率信息。

IDebugFunctionPosition2

DE

表示在断点设置的函数中的位置。

IDebugPendingBreakpoint2

DE

表示要绑定的断点;使用在创建绑定断点。

IEnumDebugBoundBreakpoints2

DE

表示中的枚举设置绑定的断点。

IEnumDebugErrorBreakpoints2

DE

表示中的枚举不能绑定到内存位置中设置断点。

上下文

这些接口表示各种正在调试的程序内的上下文。

接口

实现

说明

IDebugCodeContext2

DE

表示代码命令的起始位置。

IDebugCodeContext3

DE

扩展 IDebugCodeContext2 接口支持模块检索和处理接口。

IDebugDocumentContext2

使用, DE

表示文档中的位置。

IDebugExpressionContext2

DE

表示计算表达式的上下文。

IDebugMemoryContext2

DE

一个表示起始位置。记念字节的集合。

IDebugStackFrame2

DE

表示堆栈帧上下文在断点或异常。

IDebugStackFrame3

DE

表示堆栈帧上下文在断点或异常。

IEnumDebugCodeContexts2

DE

表示中的枚举设置代码上下文。

核心服务器

这些接口表示程序正在调试的计算机。 这些由 Visual Studio 实现,但可以调用调试引擎。

接口

实现

说明

IDebugCoreServer2

提供对端口和端口提供的有关计算机的访问以及信息。

IDebugCoreServer3

表示支持远程调试的 IDebugCoreServer2

调试引擎

这些接口表示调试引擎及其关联的事件。

接口

实现

说明

IDebugEngine2

DE

表示自定义调试引擎。

IDebugEngine3

DE

表示自定义调试支持符号、 JustMyCode 和异常加载的引擎。

IDebugEngineCreateEvent2

DE

发送由 DE 的每个新的实例以指示已准备好处理调试任务。

IDebugEngineLaunch2

DE

表示自定义调试支持生成的程序的引擎。

IDebugProgramEngines2

DE, PS

表示该程序的节点多个调试引擎的句柄。

IDebugQueryEngine2

DE

为 SDM 提供了一种获取接口为线程、过程或堆栈帧的调试引擎。

文档

这些接口表示文档 (源文件) 及其关联的元素。

接口

实现

说明

IDebugActivateDocumentEvent2

DE

发送由 DE 请求文档中打开。

IDebugDisassemblyStream2

DE

表示要拆分的指令流从文档的。

IDebugDocument2

使用, DE

表示 DE 提供的文档,指定名称和类 ID (CLSID)。

IDebugDocumentChecksum2

DE, EE

表示调试的校验和文档并允许通过检查和组件之间。

IDebugDocumentContext2

使用, DE

表示文档上下文,在文档中的一个位置与特定语句和代码上下文相对应。

IDebugDocumentPosition2

使用, DE

表示在文档中的泛型位置。

IDebugDocumentPositionOffset2

表示源文件中的位置作为字符偏移量。

IDebugDocumentText2

使用, DE

表示文本文档提供 DE (从派生 IDebugDocument2),使实际文本。

IDebugDocumentTextEvents2

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

表示事件的 SDM 实现的接口 (是以实现特定的事件接口的对象) 发送。

IDebugExceptionEvent2

DE

发送由 DE,当异常正在调试的程序发生。

IDebugExpressionEvaluationCompleteEvent2

DE

发送由 DE,在异步表达式计算完成。

IDebugFindSymbolEvent2

 

过时。 不要使用。

IDebugInterceptExceptionCompleteEvent2

DE

发送由 DE,在处理已截获异常的已完成。

IDebugLoadCompleteEvent2

DE

发送由 DE,当程序完成加载。

IDebugMessageEvent2

DE

发送由 DE 具有 IDE 显示一个信息性消息给用户。

IDebugModuleLoadEvent2

DE

发送由 DE,当模块加载或卸载。

IDebugNoSymbolsEvent2

DE

信号 Visual Studio 调试器 UI 警告用户符号不能为生成的可执行文件驻留。

IDebugOutputStringEvent2

DE

发送由 DE 具有 IDE 显示一个随机字符串。

IDebugPortEvents2

使用, DE

发送由端口通信端口事件对任何侦听器。

IDebugProcessCreateEvent2

DE, PS

发送由、或端口,进程时创建的。

IDebugProcessDestroyEvent2

DE, PS

发送由、或端口,当损坏了进程。

IDebugProgramCreateEvent2

DE, PS

发送由、或端口,当程序的创建时间。

IDebugProgramDestroyEvent2

DE, PS

发送由、或端口,当销毁到程序中。

IDebugProgramDestroyEventFlags2

DE

,在调试会话结束时,可以调试引擎重写 Visual Studio UI 的默认行为。

IDebugProgramNameChangedEvent2

DE

,当程序的名称更改时,从调试引擎 (DE)发送到该会话调试管理器 (SDM)。

IDebugPropertyCreateEvent2

DE

发送由 DE,如果新的属性 (由 IDebugProperty2 接口) 创建的。

IDebugPropertyDestroyEvent2

DE

发送由 DE,当销毁了 "。

IDebugReturnValueEvent2

DE

发送由 DE,当跳出或函数,因此返回值可以正确显示。

IDebugSettingsCallback2

启用调试引擎远程读取指标设置。

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了解的设置模块。

端口

这些接口表示端口和端口提供程序。

接口

实现

说明

IDebugDefaultPort2

使用, PS

表示本地计算机上的默认端口。

IDebugFirewallConfigurationCallback2

允许使用 DCOM 请求 Visual Studio UI 确保的调试引擎,防火墙不会阻止远程调试。

IDebugPort2

使用, PS

表示端口。

IDebugPortEvents2

PS

发送由端口通信端口事件对任何侦听器。

IDebugPortEx2

PS

表示可生成,并终止进程的端口。

IDebugPortNotify2

PS

用于端口注册和注销程序;允许端口跟踪当前正在调试的程序。

IDebugPortPicker

PS

表示选择的端口自定义 UI。

IDebugPortRequest2

表示对新端口将创建或驻留的端口。

IDebugPortSupplier2

PS

表示端口的提供程序。

IDebugPortSupplier3

PS

表示可能仍存在端口的提供程序 (向磁盘保存) 有关端口的信息它创建。

IDebugPortSupplierDescription2

PS

使 Visual Studio UI 显示在 附加的进程 对话框的 将信息传输 部分的内部文本。

IDebugWindowsComputerPort2

查询有关目标计算机的信息允许。

IEnumDebugPorts2

使用, PS

表示中的枚举将端口。

IEnumDebugPortSuppliers2

表示中的枚举将端口提供程序。

进程

这些接口表示的过程,包含一个或多个程序的一个可执行。

接口

实现

说明

IDebugProcess2

PS, DE

表示正在计算机上运行的进程。

IDebugProcess3

PS, DE

表示有效地支持调试的进程 (用于替换步骤,延续和实现方法在 IDebugProgram2 接口)。

IDebugProcessCreateEvent2

DE, PS

发送由、或端口,进程时创建的。

IDebugProcessDestroyEvent2

DE, PS

发送由、或端口,当损坏了进程。

IDebugProcessEx2

PS

表示必须跟踪的处理哪个会话附加到它。

IEnumDebugProcesses2

PS

在端口表示枚举设置。

程序

这些接口表示程序,不必对应于一个实际可执行文件或模块执行的逻辑单元。

接口

实现

说明

IDebugEngineProgram2

DE

表示工作所需协力同时调试的其他程序的 IDebugProgram2

IDebugProgram2

DE, PS

表示执行一个逻辑单元。

IDebugProgramCreateEvent2

DE, PS

发送由、或端口,当程序的创建时间。

IDebugProgramDestroyEvent2

DE, PS

发送由、或端口,当销毁到程序中。

IDebugProgramEngines2

DE, PS

表示可由多个进程调试引擎的 IDebugProgramNode2

IDebugProgramEx2

PS

表示必须能够跟踪的 IDebugProgram2 哪个会话附加到它。

IDebugProgramHost2

DE, PS

表示可返回有关进程的信息运行它的 IDebugProgram2

IDebugProgramNode2

DE, PS

表示可调试的程序。

IDebugProgramNodeAttach2

DE, PS

允许程序节点得到通知尝试附加到关联的程序。

IDebugProgramProvider2

DE

为 SDM 提供了一种对该 DE 控件的过程查询 DE。

IDebugProgramPublisher2

用于使 DES 注册程序提供 SDM 显示其进行调试。

IDebugProviderProgramNode2

DE, PS

表示可包含在线程之间的接口或进程边界的 IDebugProgramNode2

IEnumDebugPrograms2

DE, PS

表示枚举设置程序。

属性

这些接口表示属性,该属性的值与特定上下文,通常结果表达式计算。

接口

实现

说明

IDebugCustomViewer

EE

表示可显示其值以自定义方式的 IDebugProperty2

IDebugProperty2

DE

表示堆栈帧的值,文档或表达式计算的结果。

IDebugProperty3

DE

表示随机支持长字符串的 IDebugProperty2

IDebugPropertyCreateEvent2

DE

发送由 DE,如果新的属性 (由 IDebugProperty2 接口) 创建的。

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 实现的属性。

请参见

参考

API 引用 (Visual Studio 调试)

其他资源

创建自定义调试引擎