Debugger Engine Reference

一、客戶端函數
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::全局符號表的相關操作。
五、結構體和常量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章