Debugger Engine Reference

来源:互联网 发布:淘宝客可以注销吗 编辑:程序博客网 时间:2024/05/16 18:15

一、客户端函数
1、DebugConnect
DebugConnect和DebugConnectWide函数创建一个新客户对象并返回一个接口指针给它。这个客户端对象可被连接到一个远程主机。

HRESULT  DebugConnect(    IN PCSTR  RemoteOptions,    IN REFIID  InterfaceId,    OUT PVOID *  Interface    );HRESULT  DebugConnectWide(    IN PCWSTR  RemoteOptions,    IN REFIID  InterfaceId,    OUT PVOID *  Interface    );#ifdef UNICODE#define DebugConnectT DebugConnectWide#else#define DebugConnectT DebugConnect#endif

参数
RemoteOptions
指定调试器引擎将如何连接到远程主机。这跟命令行下的remote命令是相同选项。
InterfaceId
指定调试器引擎客户接口的接口标示(IID)。这是将被返回到Interface的接口的类型。
Interface
返回一个接口指针给新客户。接口的类型被InterfaceId指定。
返回值
S_OK
命令执行成功。
要求
头文件:被定义在dbgeng.h。Include dbgeng.h.
2、DebugCreate
DebugCreate函数创建一个新的客户对象并返回一个借口指针给它。

HRESULT  DebugCreate(    IN REFIID  InterfaceId,    OUT PVOID *  Interface    );

参数
InterfaceId
指定被期望调试器引擎客户接口的接口标示(IID)。这是被返回给Interface的接口类型。关于接口标示更多的信息,请看COM Interfaces。
Interface
给新的客户返回一个接口指针。接口的类型由InterfaceId指定。
返回值
S_OK
返回成功。
E_NOINTERFACE
客户对象没有实施被指定的接口。
内容
传递给DebugCreate的参数跟传递给IUnknown::QueryInterface一样,它们被同等对待。
对于IUnknown::QueryInterface,当返回的接口不再使用,它的IUnknown::Release方法就要被调用。

二、客户COM接口
1、IDebugAdvanced::获取客户端线程、源文件、符号表等相关信息
2、IDebugClient::与客户端相关的一些列方法,包括客户端的创建、结束、附加、会话、事件分发、转储文件的读写等等
3、IDebugControl::与客户端控制相关的一系列方法,包括控制客户端执行、计算、断点操作和一系列输入输出控制。
4、IDebugDataSpaces::与数据相关的一系列方法,包括数据的读写、搜索和信息获取。
5、IDebugRegisters::与寄存器相关的一系列方法,包括栈针信息的获取、指令的获取、寄存器值的读写。
6、IDebugSymbols::与符号相关的一系列方法,包括模块、源文件、符号表
7、IDebugSystemObjects::与系统对象相关一系列方法,包括线程、进程、环境相关信息的获取和设置。
三、回调COM接口
1、IDebugEventCallbacks::包含断点、异常、状态改变、模块加载、进程线程创建等事件的回调函数。
2、IDebugInputCallbacks::包含开始和结束输入的回调函数
3、IDebugOutputCallbacks::只包含一个输出回调函数
四、其他COM接口
1、IDebugBreakpoint::与断点相关的更为详细的方法,包含断点的地址、命令、id、参数的获取和设置。
2、IDebugSymbolGroup::全局符号表的相关操作。
五、结构体和常量

0 0