WdbgExts のシンボル
このトピックでは、WdbgExts API を使用してシンボルを操作する方法について簡単に説明します。 デバッガー エンジンのシンボル使用の概要については、このドキュメントの「デバッガー エンジンの概要」セクションの「シンボル」を参照してください。
MASM または C++ 式を評価するには、GetExpression 関数または GetExpressionEx 関数を使用します。
構造体内のメンバーの値を読み取るには、GetFieldData 関数を使用するか、メンバーにプリミティブ値が含まれている場合は GetFieldValue を使用できます。 ターゲットのメモリ内のシンボルのインスタンスのサイズを確認するには、GetTypeSize 関数を使用します。
構造体内のメンバーのオフセットを検索するには、GetFieldOffset 関数を使用します。
構造体内の複数のメンバーを読み取る場合は、最初に InitTypeRead 関数を使用して構造体を初期化します。 次に、ReadField 関数を使用して、サイズが 8 バイト以下のメンバーを一度に 1 つずつ読み取ることができます。 物理メモリ内の構造体アドレスの場合は、InitTypeRead の代わりに InitTypeReadPhysical 関数を使用します。
リンク リストの反復処理に使用できる関数は 2 つあります。 LIST_ENTRY32またはLIST_ENTRY64 構造体を使用する二重リンク リストの場合、関数 ReadListEntry を使用して次のエントリと前のエントリを検索できます。 ListType 関数は、リンクされたリスト内のすべてのエントリを反復処理し、各エントリのコールバック関数を呼び出します。
ターゲットのメモリ内の指定したアドレスの近くにシンボルを見つけるには、GetSymbol 関数を使用します。
デバッガー エンジンのキャッシュからすべてのシンボル情報を削除するには、ReloadSymbols 関数を使用します。 シンボル ファイルの検索に使用されるシンボル パスを読み取りまたは変更するには、GetSetSympath 関数を使用します。
デバッガー エンジンによって提供されるほぼすべてのシンボル操作は、Ioctl 操作 IG_DUMP_SYMBOL_INFO を使用して実行できます。 ただし、非常に柔軟な機能である一方で、高度であり、該当する場合は上記のより単純な関数を使用することをお勧めします。
追加情報
より強力なシンボル API については、このドキュメントの「デバッガー エンジン API の使用」セクションの「シンボルの使用」を参照してください。