核心接口
以下接口是用于使用 Visual Studio SDK 扩展调试器的核心接口。
讨论 (Discussion)
这些接口主要用于创建调试引擎(DE)。 它们按类别在这里组织:
-
可实现接口的实体包括:
调试引擎 (DE)
端口供应商(PS)
表达式计算器(企业版)
Visual Studio (VS)
断点
这些接口与断点的实现和跟踪相关。
接口 | 实现者 | 说明 |
---|---|---|
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 实现的访问权限。 |