核心接口

以下接口是用于使用 Visual Studio SDK 扩展调试器的核心接口。

讨论 (Discussion)

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

断点

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

接口 实现者 说明
IDebugBoundBreakpoint2 DE 表示绑定到内存位置的断点。
IDebugBreakpointBoundEvent2 DE 当断点绑定到内存位置时,DE 发送。
IDebugBreakpointChecksumRequest2 VS 表示断点请求的文档检查和。
IDebugBreakpointErrorEvent2 DE 当断点无法绑定到内存位置时,DE 发送。
IDebugBreakpointEvent2 DE 当到达断点时,DE 发送。
IDebugBreakpointRequest2 VS 表示对断点的请求;用于创建挂起的断点。
IDebugBreakpointRequest3 VS 表示对断点的请求;用于创建挂起的断点。
IDebugBreakpointResolution2 DE 表示用于绑定断点的信息。
IDebugBreakpointUnboundEvent2 DE 当断点从内存位置取消绑定时,DE 发送。
IDebugErrorBreakpoint2 DE 表示无效的断点(返回者 IDebugBreakpointErrorEvent2)。
IDebugErrorBreakpointResolution2 DE 表示有关无效断点的解析信息。
IDebugFunctionPosition2 DE 表示在设置断点的函数中的位置。
IDebugPendingBreakpoint2 DE 表示要绑定的断点;用于创建绑定断点。
IEnumDebugBoundBreakpoints2 DE 表示一组绑定断点的枚举。
IEnumDebugErrorBreakpoints2 DE 表示无法绑定到内存位置的一组断点的枚举。

上下文

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

接口 实现者 说明
IDebugCodeContext2 DE 表示代码指令的起始位置。
IDebugCodeContext3 DE 扩展 IDebugCodeContext2 接口,以启用模块和进程接口的检索。
IDebugDocumentContext2 VS、DE 表示文档中的位置。
IDebugExpressionContext2 DE 表示计算表达式的上下文。
IDebugMemoryContext2 DE 表示字节集合内存中的起始位置。
IDebugStackFrame2 DE 表示断点或异常时的堆栈帧上下文。
IDebugStackFrame3 DE 表示断点或异常时的堆栈帧上下文。
IEnumDebugCodeContexts2 DE 表示一组代码上下文的枚举。

核心服务器

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

接口 实现者 说明
IDebugCoreServer2 VS 提供对端口和端口供应商的访问以及有关计算机的信息。
IDebugCoreServer3 VS 表示 支持远程调试的 IDebugCoreServer2

调试引擎

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

接口 实现者 说明
IDebugEngine2 DE 表示自定义调试引擎。
IDebugEngine3 DE 表示支持加载符号、JustMyCode 和异常的自定义调试引擎。
IDebugEngineCreateEvent2 DE 由 DE 的每个新实例发送,以指示它已准备好处理调试任务。
IDebugEngineLaunch2 DE 表示支持启动程序的自定义调试引擎。
IDebugProgramEngines2 DE、PS 表示处理多个调试引擎的程序节点。
IDebugQueryEngine2 DE 为 SDM 提供从线程、程序或堆栈帧获取调试引擎接口的方法。

文档

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

接口 实现者 说明
IDebugActivateDocumentEvent2 DE 由 DE 发送以请求打开的文档。
IDebugDisassemblyStream2 DE 表示文档的反汇编指令流。
IDebugDocument2 VS、DE 表示 DE 提供的文档,指定名称和类 ID(CLSID)。
IDebugDocumentChecksum2 DE、企业版 表示调试文档的检查和,并启用在组件之间传递检查和。
IDebugDocumentContext2 VS、DE 表示文档上下文、对应于特定语句和代码上下文的文档中的位置。
IDebugDocumentPosition2 VS、DE 表示文档中的一般位置。
IDebugDocumentPositionOffset2 VS 表示源文件中作为字符偏移的位置。
IDebugDocumentText2 VS、DE 表示 DE 提供的文本文档(派生自 IDebugDocument2),提供实际文本。
IDebugDocumentTextEvents2 DE 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 VS 表示由 SDM 实现的接口,事件(以实现特定事件接口的对象表示)发送到该接口。
IDebugExceptionEvent2 DE 当调试程序中发生异常时,DE 会发送该异常。
IDebugExpressionEvaluationCompleteEvent2 DE 异步表达式计算完成时由 DE 发送。
IDebugFindSymbolEvent2 已过时。 请勿 U标准版。
IDebugInterceptExceptionCompleteEvent2 DE 在处理已截获的异常时由 DE 发送。
IDebugLoadCompleteEvent2 DE 当程序完成加载时,DE 发送。
IDebugMessageEvent2 DE 由 DE 发送,使 IDE 向用户显示信息性消息。
IDebugModuleLoadEvent2 DE 加载或卸载模块时,DE 发送。
IDebugNoSymbolsEvent2 DE 向 Visual Studio 调试器 UI 发出信号,警告用户无法为启动的可执行文件找到符号。
IDebugOutputStringEvent2 DE DE 发送以让 IDE 显示任意字符串。
IDebugPortEvents2 VS、DE 端口发送以将端口事件传达给任何侦听器。
IDebugProcessCreateEvent2 DE、PS 创建进程时由 DE 或端口发送。
IDebugProcessDestroyEvent2 DE、PS 在销毁进程时由 DE 或端口发送。
IDebugProgramCreateEvent2 DE、PS 创建程序时由 DE 或端口发送。
IDebugProgramDestroyEvent2 DE、PS 当程序被销毁时,DE 或端口发送。
IDebugProgramDestroyEventFlags2 DE 允许调试引擎在结束调试会话时替代 Visual Studio UI 的默认行为。
IDebugProgramNameChangedEvent2 DE 从调试引擎(DE)发送到会话调试管理器(SDM)时程序的名称发生更改。
IDebugPropertyCreateEvent2 DE 创建新属性(由接口表示 IDebugProperty2 )时,DE 发送。
IDebugPropertyDestroyEvent2 DE 当属性被销毁时,DE 发送。
IDebugReturnValueEvent2 DE DE 在逐出或越过函数时发送,以便正确显示返回值。
IDebugSettingsCallback2 VS 使调试引擎能够远程读取指标设置。
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 VS、PS 表示本地计算机上的默认端口。
IDebugFirewallConfigurationCallback2 VS 启用使用 DCOM 要求 Visual Studio UI 确保防火墙不会阻止远程调试的调试引擎。
IDebugPort2 VS、PS 表示端口。
IDebugPortEvents2 PS 端口发送以将端口事件传达给任何侦听器。
IDebugPortEx2 PS 表示可以启动和终止进程的端口。
IDebugPortNotify2 PS 用于向端口注册和注销程序;允许端口跟踪当前正在调试的程序。
IDebugPortPicker PS 表示用于选择端口的自定义 UI。
IDebugPortRequest2 VS 表示要从中创建或定位新端口的端口的请求。
IDebugPortSupplier2 PS 表示端口的供应商。
IDebugPortSupplier3 PS 表示可以保存(保存到磁盘)有关其创建的端口的信息的端口的供应商。
IDebugPortSupplierDescription2 PS 使 Visual Studio UI 能够在“附加到进程”对话框的“传输信息”部分内显示文本。
IDebugWindowsComputerPort2 VS 允许查询有关目标计算机的信息。
IEnumDebugPorts2 VS、PS 表示一组端口的枚举。
IEnumDebugPortSuppliers2 VS 表示一组端口供应商的枚举。

进程

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

接口 实现者 说明
IDebugProcess2 PS、DE 表示在计算机上运行的进程。
IDebugProcess3 PS、DE 表示一个主动支持调试的进程(用于替换 IDebugProgram2 接口上的 Step、Continue 和 Execute 方法)。
IDebugProcessCreateEvent2 DE、PS 创建进程时由 DE 或端口发送。
IDebugProcessDestroyEvent2 DE、PS 在销毁进程时由 DE 或端口发送。
IDebugProcessEx2 PS 表示必须跟踪附加到它的会话的进程。
IEnumDebugProcesses2 PS 表示端口上一组进程的枚举。

Programs

这些接口表示程序、不一定对应于物理可执行文件或模块的执行逻辑单元。

接口 实现者 说明
IDebugEngineProgram2 DE 表示 需要与同时调试的其他程序协同工作的 IDebugProgram2
IDebugProgram2 DE、PS 表示一个逻辑执行单元。
IDebugProgramCreateEvent2 DE、PS 创建程序时由 DE 或端口发送。
IDebugProgramDestroyEvent2 DE、PS 当程序被销毁时,DE 或端口发送。
IDebugProgramEngines2 DE、PS 表示 可由多个调试引擎处理的 IDebugProgramNode2
IDebugProgramEx2 PS 表示 必须能够跟踪附加到它的会话的 IDebugProgram2
IDebugProgramHost2 DE、PS 表示一个 IDebugProgram2,该 IDebugProgram2 可以返回有关其运行的进程的信息。
IDebugProgramNode2 DE、PS 表示可以调试的程序。
IDebugProgramNodeAttach2 DE、PS 允许通知程序节点尝试附加到关联的程序。
IDebugProgramProvider2 DE 为 SDM 提供一种方法来查询 DE,了解该 DE 控制的程序。
IDebugProgramPublisher2 VS DES 用于向 SDM 注册程序,以显示它们正在调试。
IDebugProviderProgramNode2 DE、PS 表示可以 跨线程或进程边界封送接口的 IDebugProgramNode2
IEnumDebugPrograms2 DE、PS 表示一组程序的枚举。

属性

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

接口 实现者 说明
IDebugCustomViewer EE 表示可以 以自定义方式显示其值的 IDebugProperty2
IDebugProperty2 DE 表示堆栈帧、文档或表达式计算结果的值。
IDebugProperty3 DE 表示 支持任意长字符串的 IDebugProperty2
IDebugPropertyCreateEvent2 DE 创建新属性(由 IDebugProperty2 接口表示)时由 DE 发送。
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 表示一个属性,该属性提供对 IPropertyProxy企业版Side 实现的访问权限。

另请参阅