核心接口
使用 Visual Studio SDK,下面的接口会扩展调试器的核心接口。
讨论
这些接口主要用于创建调试引擎 (DE)。 按类别组织示:
断点
上下文
核心服务器
调试引擎
文档
事件
表达式
内存
模块
端口
进程
程序
属性
堆栈帧
线程
键入可视化工具
可以实现接口的实体是:
调试引擎 (DE)
端口提供程序 (PS)
表达式计算器 (EE)
Visual Studio (VS)
断点
这些接口与实现和跟踪断点相关。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示断点绑定到内存位置。 |
|
DE |
发送由 DE,当断点绑定到内存位置。 |
|
与 |
表示断点请求的文档校验和。 |
|
DE |
发送由 DE,当断点也可以绑定到内存位置。 |
|
DE |
发送由 DE,当断点为止。 |
|
与 |
表示对断点;使用在创建挂起的断点。 |
|
与 |
表示对断点;使用在创建挂起的断点。 |
|
DE |
表示用于的信息绑定断点。 |
|
DE |
发送由 DE,当断点从内存位置为未绑定。 |
|
DE |
表示无效断点 (返回 IDebugBreakpointErrorEvent2)。 |
|
DE |
表示有关无效断点的分辨率信息。 |
|
DE |
表示在断点设置的函数中的位置。 |
|
DE |
表示要绑定的断点;使用在创建绑定断点。 |
|
DE |
表示中的枚举设置绑定的断点。 |
|
DE |
表示中的枚举不能绑定到内存位置中设置断点。 |
上下文
这些接口表示各种正在调试的程序内的上下文。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示代码命令的起始位置。 |
|
DE |
扩展 IDebugCodeContext2 接口支持模块检索和处理接口。 |
|
使用, DE |
表示文档中的位置。 |
|
DE |
表示计算表达式的上下文。 |
|
DE |
一个表示起始位置。记念字节的集合。 |
|
DE |
表示堆栈帧上下文在断点或异常。 |
|
DE |
表示堆栈帧上下文在断点或异常。 |
|
DE |
表示中的枚举设置代码上下文。 |
核心服务器
这些接口表示程序正在调试的计算机。 这些由 Visual Studio 实现,但可以调用调试引擎。
接口 |
实现 |
说明 |
---|---|---|
与 |
提供对端口和端口提供的有关计算机的访问以及信息。 |
|
与 |
表示支持远程调试的 IDebugCoreServer2 。 |
调试引擎
这些接口表示调试引擎及其关联的事件。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示自定义调试引擎。 |
|
DE |
表示自定义调试支持符号、 JustMyCode 和异常加载的引擎。 |
|
DE |
发送由 DE 的每个新的实例以指示已准备好处理调试任务。 |
|
DE |
表示自定义调试支持生成的程序的引擎。 |
|
DE, PS |
表示该程序的节点多个调试引擎的句柄。 |
|
DE |
为 SDM 提供了一种获取接口为线程、过程或堆栈帧的调试引擎。 |
文档
这些接口表示文档 (源文件) 及其关联的元素。
接口 |
实现 |
说明 |
---|---|---|
DE |
发送由 DE 请求文档中打开。 |
|
DE |
表示要拆分的指令流从文档的。 |
|
使用, DE |
表示 DE 提供的文档,指定名称和类 ID (CLSID)。 |
|
DE, EE |
表示调试的校验和文档并允许通过检查和组件之间。 |
|
使用, DE |
表示文档上下文,在文档中的一个位置与特定语句和代码上下文相对应。 |
|
使用, DE |
表示在文档中的泛型位置。 |
|
与 |
表示源文件中的位置作为字符偏移量。 |
|
使用, DE |
表示文本文档提供 DE (从派生 IDebugDocument2),使实际文本。 |
|
DE |
发送由 DE 指定要在内存中的源文件。 |
事件
这些接口表示发送在、和会话之间调试管理器 (SDM)中的所有事件。
接口 |
实现 |
说明 |
---|---|---|
DE |
发送由 DE 请求文档中打开。 |
|
DE |
在符号加载过程中,调试引擎 (DE)发送此接口添加到该会话调试经理 (SDM)设置状态栏消息。 |
|
DE |
发送由 DE,在程序的一个中断完成。 |
|
DE |
发送由 DE,当断点绑定。 |
|
DE |
发送由 DE,当断点也可以绑定到。 |
|
DE |
发送由 DE,当断点为止。 |
|
DE |
发送由 DE,当断点是未绑定。 |
|
DE |
发送由 DE 确定是否应在特定位置停止。 |
|
DE |
发送由 DE 指定要在内存中的源文件。 |
|
DE |
发送由 DE 的每个新的实例以指示已准备好处理调试任务。 |
|
DE |
发送由 DE 指示正在调试的程序准备第一个执行命令。 |
|
DE |
其他事件接口使用,可以返回错误的接口,提供可读的错误消息。 |
|
DE, PS |
其他事件接口派生的基接口。 |
|
与 |
表示事件的 SDM 实现的接口 (是以实现特定的事件接口的对象) 发送。 |
|
DE |
发送由 DE,当异常正在调试的程序发生。 |
|
DE |
发送由 DE,在异步表达式计算完成。 |
|
IDebugFindSymbolEvent2 |
|
过时。 不要使用。 |
DE |
发送由 DE,在处理已截获异常的已完成。 |
|
DE |
发送由 DE,当程序完成加载。 |
|
DE |
发送由 DE 具有 IDE 显示一个信息性消息给用户。 |
|
DE |
发送由 DE,当模块加载或卸载。 |
|
DE |
信号 Visual Studio 调试器 UI 警告用户符号不能为生成的可执行文件驻留。 |
|
DE |
发送由 DE 具有 IDE 显示一个随机字符串。 |
|
使用, DE |
发送由端口通信端口事件对任何侦听器。 |
|
DE, PS |
发送由、或端口,进程时创建的。 |
|
DE, PS |
发送由、或端口,当损坏了进程。 |
|
DE, PS |
发送由、或端口,当程序的创建时间。 |
|
DE, PS |
发送由、或端口,当销毁到程序中。 |
|
DE |
,在调试会话结束时,可以调试引擎重写 Visual Studio UI 的默认行为。 |
|
DE |
,当程序的名称更改时,从调试引擎 (DE)发送到该会话调试管理器 (SDM)。 |
|
DE |
发送由 DE,如果新的属性 (由 IDebugProperty2 接口) 创建的。 |
|
DE |
发送由 DE,当销毁了 "。 |
|
DE |
发送由 DE,当跳出或函数,因此返回值可以正确显示。 |
|
与 |
启用调试引擎远程读取指标设置。 |
|
DE |
发送由 DE,当一步到,在中,或从命令中完成。 |
|
DE |
发送由 DE 指示加载符号的成功或失败模块的。 |
|
DE |
发送由 DE,当线程的创建时间。 |
|
DE |
发送由 DE,当销毁的线程。 |
|
DE |
发送由 DE,当线程已更改其名称。 |
表达式
这些接口表示在特定上下文将计算的表达式。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示要计算的表达式。 从 IDebugExpressionContext2 接口获取。 |
|
DE |
表示计算表达式的上下文。 从 IDebugStackFrame2 接口获取。 |
|
DE |
发送由 DE,在异步表达式计算完成。 |
内存
这些接口表示字节序列内存中。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示字节序列。可以读取或写入的内存。 |
|
DE |
表示位置。记念字节序列。 |
模块
这些接口表示模块,对应于可执行或 .DLL 文件。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示单个可执行文件或 DLL。 |
|
DE |
表示支持符号的 IDebugModule2 。 |
|
DE |
发送由 DE,当模块加载或卸载。 |
|
DE |
表示在 PDB 文件包含的源服务器信息。 |
|
DE |
表示中的枚举由 IDebugProgram2了解的设置模块。 |
端口
这些接口表示端口和端口提供程序。
接口 |
实现 |
说明 |
---|---|---|
使用, PS |
表示本地计算机上的默认端口。 |
|
与 |
允许使用 DCOM 请求 Visual Studio UI 确保的调试引擎,防火墙不会阻止远程调试。 |
|
使用, PS |
表示端口。 |
|
PS |
发送由端口通信端口事件对任何侦听器。 |
|
PS |
表示可生成,并终止进程的端口。 |
|
PS |
用于端口注册和注销程序;允许端口跟踪当前正在调试的程序。 |
|
PS |
表示选择的端口自定义 UI。 |
|
与 |
表示对新端口将创建或驻留的端口。 |
|
PS |
表示端口的提供程序。 |
|
PS |
表示可能仍存在端口的提供程序 (向磁盘保存) 有关端口的信息它创建。 |
|
PS |
使 Visual Studio UI 显示在 附加的进程 对话框的 将信息传输 部分的内部文本。 |
|
与 |
查询有关目标计算机的信息允许。 |
|
使用, PS |
表示中的枚举将端口。 |
|
与 |
表示中的枚举将端口提供程序。 |
进程
这些接口表示的过程,包含一个或多个程序的一个可执行。
接口 |
实现 |
说明 |
---|---|---|
PS, DE |
表示正在计算机上运行的进程。 |
|
PS, DE |
表示有效地支持调试的进程 (用于替换步骤,延续和实现方法在 IDebugProgram2 接口)。 |
|
DE, PS |
发送由、或端口,进程时创建的。 |
|
DE, PS |
发送由、或端口,当损坏了进程。 |
|
PS |
表示必须跟踪的处理哪个会话附加到它。 |
|
PS |
在端口表示枚举设置。 |
程序
这些接口表示程序,不必对应于一个实际可执行文件或模块执行的逻辑单元。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示工作所需协力同时调试的其他程序的 IDebugProgram2 。 |
|
DE, PS |
表示执行一个逻辑单元。 |
|
DE, PS |
发送由、或端口,当程序的创建时间。 |
|
DE, PS |
发送由、或端口,当销毁到程序中。 |
|
DE, PS |
表示可由多个进程调试引擎的 IDebugProgramNode2 。 |
|
PS |
表示必须能够跟踪的 IDebugProgram2 哪个会话附加到它。 |
|
DE, PS |
表示可返回有关进程的信息运行它的 IDebugProgram2 。 |
|
DE, PS |
表示可调试的程序。 |
|
DE, PS |
允许程序节点得到通知尝试附加到关联的程序。 |
|
DE |
为 SDM 提供了一种对该 DE 控件的过程查询 DE。 |
|
与 |
用于使 DES 注册程序提供 SDM 显示其进行调试。 |
|
DE, PS |
表示可包含在线程之间的接口或进程边界的 IDebugProgramNode2 。 |
|
DE, PS |
表示枚举设置程序。 |
属性
这些接口表示属性,该属性的值与特定上下文,通常结果表达式计算。
接口 |
实现 |
说明 |
---|---|---|
EE |
表示可显示其值以自定义方式的 IDebugProperty2 。 |
|
DE |
表示堆栈帧的值,文档或表达式计算的结果。 |
|
DE |
表示随机支持长字符串的 IDebugProperty2 。 |
|
DE |
发送由 DE,如果新的属性 (由 IDebugProperty2 接口) 创建的。 |
|
DE |
发送由 DE,当销毁了 "。 |
|
DE |
表示对可在任何特定堆栈帧外显示的属性。 |
|
DE |
表示中的枚举设置描述变量、寄存器、参数和表达式的 DEBUG_PROPERTY_INFO 结构。 |
|
DE |
表示中的枚举设置 DEBUG_REFERENCE_INFO 结构。 |
堆栈帧
这些接口表示堆栈帧,断点或发生了异常的上下文。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示断点或发生了异常的上下文。 |
|
DE |
表示可以处理被截取的异常的 IDebugStackFrame2 。 |
|
DE |
表示中的枚举设置指定函数调用序列用于达到特定堆栈帧的 CODE_PATH 结构。 |
|
DE |
表示中的枚举设置 FRAMEINFO 结构,描述堆栈帧。 |
线程
这些接口表示线程及其关联的事件。
接口 |
实现 |
说明 |
---|---|---|
DE |
表示执行线程。 |
|
DE |
发送由 DE,当线程的创建时间。 |
|
DE |
发送由 DE,当销毁的线程。 |
|
DE |
发送由 DE,当线程已更改其名称。 |
|
DE |
表示中的枚举设置线程。 |
键入可视化工具
这些接口提供类型可视化工具支持。 这些接口由表达式计算器通常实现。
接口 |
实现 |
说明 |
---|---|---|
EE |
表示将显示的字节到类型的可视化工具。 |
|
EE |
提供用于获取数据访问通过提供方法添加到类型可视化工具。 |
|
EE |
表示提供对 IPropertyProxyEESide 实现的属性。 |