您的位置:首页 > Web前端

Debugger Engine Reference

2015-07-02 23:38 232 查看
一、客户端函数

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::全局符号表的相关操作。

五、结构体和常量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: