ホーム › System.Diagnostics.Debug.Extensions › IDebugAdvanced4
IDebugAdvanced4
COMメソッド 11
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| Context | void* | out | 取得したスレッドコンテキスト (CONTEXT 構造体) を格納するバッファへのポインタである。 |
| ContextSize | DWORD | in | Context バッファのサイズをバイト単位で指定する。 |
| Context | void* | in | 設定するスレッドコンテキスト (CONTEXT 構造体) を格納したバッファへのポインタである。 |
| ContextSize | DWORD | in | Context バッファのサイズをバイト単位で指定する。 |
vtbl 5 HRESULT Request(DWORD Request, void* InBuffer, DWORD InBufferSize, void* OutBuffer, DWORD OutBufferSize, DWORD* OutSize)
| Request | DWORD | in | 実行する要求の種類を表す DEBUG_REQUEST_* コードを指定する。 |
| InBuffer | void* | inoptional | 要求に渡す入力データを格納したバッファへのポインタである。不要なら NULL を指定する。 |
| InBufferSize | DWORD | in | InBuffer のサイズをバイト単位で指定する。 |
| OutBuffer | void* | outoptional | 要求の結果を受け取る出力バッファへのポインタである。不要なら NULL を指定する。 |
| OutBufferSize | DWORD | in | OutBuffer のサイズをバイト単位で指定する。 |
| OutSize | DWORD* | outoptional | 出力に必要なバイト数を受け取るポインタである。不要なら NULL を指定する。 |
vtbl 6 HRESULT GetSourceFileInformation(DWORD Which, LPSTR SourceFile, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize)
| Which | DWORD | in | 取得するソースファイル情報の種類を指定する。 |
| SourceFile | LPSTR | in | 対象とするソースファイルのパスを指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得した情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
vtbl 7 HRESULT FindSourceFileAndToken(DWORD StartElement, ULONGLONG ModAddr, LPSTR File, DWORD Flags, void* FileToken, DWORD FileTokenSize, DWORD* FoundElement, LPSTR Buffer, DWORD BufferSize, DWORD* FoundSize)
| StartElement | DWORD | in | 検索を開始するソースパス要素のインデックスを指定する。 |
| ModAddr | ULONGLONG | in | 対象モジュールのベースアドレスを指定する。 |
| File | LPSTR | in | 検索するソースファイル名を指定する。 |
| Flags | DWORD | in | 検索方法を制御する DEBUG_FIND_SOURCE_* フラグを指定する。 |
| FileToken | void* | inoptional | ファイルを識別するためのトークンデータへのポインタである。 |
| FileTokenSize | DWORD | in | FileToken のサイズをバイト単位で指定する。 |
| FoundElement | DWORD* | outoptional | 見つかったソースパス要素のインデックスを受け取るポインタである。 |
| Buffer | LPSTR | outoptional | 見つかったファイルのパスを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズを文字数単位で指定する。 |
| FoundSize | DWORD* | outoptional | 見つかったパスの格納に必要な文字数を受け取るポインタである。 |
vtbl 8 HRESULT GetSymbolInformation(DWORD Which, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize, LPSTR StringBuffer, DWORD StringBufferSize, DWORD* StringSize)
| Which | DWORD | in | 取得するシンボル情報の種類を指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得したバイナリ形式の情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
| StringBuffer | LPSTR | outoptional | 取得した文字列情報を格納するバッファへのポインタである。 |
| StringBufferSize | DWORD | in | StringBuffer のサイズを文字数単位で指定する。 |
| StringSize | DWORD* | outoptional | 文字列の格納に必要な文字数を受け取るポインタである。 |
vtbl 9 HRESULT GetSystemObjectInformation(DWORD Which, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize)
| Which | DWORD | in | 取得するシステムオブジェクト情報の種類を指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得した情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
vtbl 10 HRESULT GetSourceFileInformationWide(DWORD Which, LPWSTR SourceFile, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize)
| Which | DWORD | in | 取得するソースファイル情報の種類を指定する。 |
| SourceFile | LPWSTR | in | 対象とするソースファイルのパスを指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得した情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
vtbl 11 HRESULT FindSourceFileAndTokenWide(DWORD StartElement, ULONGLONG ModAddr, LPWSTR File, DWORD Flags, void* FileToken, DWORD FileTokenSize, DWORD* FoundElement, LPWSTR Buffer, DWORD BufferSize, DWORD* FoundSize)
| StartElement | DWORD | in | 検索を開始するソースパス要素のインデックスを指定する。 |
| ModAddr | ULONGLONG | in | 対象モジュールのベースアドレスを指定する。 |
| File | LPWSTR | in | 検索するソースファイル名を指定する。 |
| Flags | DWORD | in | 検索方法を制御する DEBUG_FIND_SOURCE_* フラグを指定する。 |
| FileToken | void* | inoptional | ファイルを識別するためのトークンデータへのポインタである。 |
| FileTokenSize | DWORD | in | FileToken のサイズをバイト単位で指定する。 |
| FoundElement | DWORD* | outoptional | 見つかったソースパス要素のインデックスを受け取るポインタである。 |
| Buffer | LPWSTR | outoptional | 見つかったファイルのパスを格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズを文字数単位で指定する。 |
| FoundSize | DWORD* | outoptional | 見つかったパスの格納に必要な文字数を受け取るポインタである。 |
vtbl 12 HRESULT GetSymbolInformationWide(DWORD Which, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize, LPWSTR StringBuffer, DWORD StringBufferSize, DWORD* StringSize)
| Which | DWORD | in | 取得するシンボル情報の種類を指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得したバイナリ形式の情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
| StringBuffer | LPWSTR | outoptional | 取得した文字列情報を格納するバッファへのポインタである。 |
| StringBufferSize | DWORD | in | StringBuffer のサイズを文字数単位で指定する。 |
| StringSize | DWORD* | outoptional | 文字列の格納に必要な文字数を受け取るポインタである。 |
vtbl 13 HRESULT GetSymbolInformationWideEx(DWORD Which, ULONGLONG Arg64, DWORD Arg32, void* Buffer, DWORD BufferSize, DWORD* InfoSize, LPWSTR StringBuffer, DWORD StringBufferSize, DWORD* StringSize, SYMBOL_INFO_EX* pInfoEx)
| Which | DWORD | in | 取得するシンボル情報の種類を指定する。 |
| Arg64 | ULONGLONG | in | 情報の種類に応じた 64 ビット引数を指定する。 |
| Arg32 | DWORD | in | 情報の種類に応じた 32 ビット引数を指定する。 |
| Buffer | void* | outoptional | 取得したバイナリ形式の情報を格納するバッファへのポインタである。 |
| BufferSize | DWORD | in | Buffer のサイズをバイト単位で指定する。 |
| InfoSize | DWORD* | outoptional | 情報の格納に必要なバイト数を受け取るポインタである。 |
| StringBuffer | LPWSTR | outoptional | 取得した文字列情報を格納するバッファへのポインタである。 |
| StringBufferSize | DWORD | in | StringBuffer のサイズを文字数単位で指定する。 |
| StringSize | DWORD* | outoptional | 文字列の格納に必要な文字数を受け取るポインタである。 |
| pInfoEx | SYMBOL_INFO_EX* | outoptional | 拡張シンボル情報を受け取る SYMBOL_INFO_EX 構造体へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDebugAdvanced4 "{D1069067-2A65-4BF0-AE97-76184B67856B}" #usecom global IDebugAdvanced4 IID_IDebugAdvanced4 "{}" #comfunc global IDebugAdvanced4_GetThreadContext 3 sptr,int #comfunc global IDebugAdvanced4_SetThreadContext 4 sptr,int #comfunc global IDebugAdvanced4_Request 5 int,sptr,int,sptr,int,var #comfunc global IDebugAdvanced4_GetSourceFileInformation 6 int,str,int64,int,sptr,int,var #comfunc global IDebugAdvanced4_FindSourceFileAndToken 7 int,int64,str,int,sptr,int,var,var,int,var #comfunc global IDebugAdvanced4_GetSymbolInformation 8 int,int64,int,sptr,int,var,var,int,var #comfunc global IDebugAdvanced4_GetSystemObjectInformation 9 int,int64,int,sptr,int,var #comfunc global IDebugAdvanced4_GetSourceFileInformationWide 10 int,wstr,int64,int,sptr,int,var #comfunc global IDebugAdvanced4_FindSourceFileAndTokenWide 11 int,int64,wstr,int,sptr,int,var,var,int,var #comfunc global IDebugAdvanced4_GetSymbolInformationWide 12 int,int64,int,sptr,int,var,var,int,var #comfunc global IDebugAdvanced4_GetSymbolInformationWideEx 13 int,int64,int,sptr,int,var,var,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDebugAdvanced4 "{D1069067-2A65-4BF0-AE97-76184B67856B}" #usecom global IDebugAdvanced4 IID_IDebugAdvanced4 "{}" #comfunc global IDebugAdvanced4_GetThreadContext 3 sptr,int #comfunc global IDebugAdvanced4_SetThreadContext 4 sptr,int #comfunc global IDebugAdvanced4_Request 5 int,sptr,int,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSourceFileInformation 6 int,str,int64,int,sptr,int,sptr #comfunc global IDebugAdvanced4_FindSourceFileAndToken 7 int,int64,str,int,sptr,int,sptr,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSymbolInformation 8 int,int64,int,sptr,int,sptr,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSystemObjectInformation 9 int,int64,int,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSourceFileInformationWide 10 int,wstr,int64,int,sptr,int,sptr #comfunc global IDebugAdvanced4_FindSourceFileAndTokenWide 11 int,int64,wstr,int,sptr,int,sptr,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSymbolInformationWide 12 int,int64,int,sptr,int,sptr,sptr,int,sptr #comfunc global IDebugAdvanced4_GetSymbolInformationWideEx 13 int,int64,int,sptr,int,sptr,sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。