シンボルの検索

シンボル ファイルがシンボル ハンドラーにロードされた後、アプリケーションはシンボル ロケーター関数を使用して、指定されたアドレスのシンボル情報を返すことができます。 これらの関数は、アドレスのソース コード ファイル名と行番号の場所を検索することもできます。

シンボル ファイルの列挙

モジュール名によって読み込まれるすべてのシンボル ファイルの一覧を取得するには、SymEnumerateModules64 関数を呼び出します。 例については、「シンボル モジュールの列挙」を参照してください。 特定のモジュールのシンボルの一覧を取得するには、SymEnumSymbols 関数を呼び出します。 例については、「シンボルの列挙」を参照してください。

アドレスによるシンボルの取得

特定のアドレスのシンボリック情報を取得するには、SymFromAddr 関数を使用します。 この関数は、情報を取得し、SYMBOL_INFO 構造体に格納します。 シンボル名は可変長であるため、SYMBOL_INFO 構造体宣言の後に追加のバッファー領域を指定する必要があります。 例については、「アドレスによるシンボル情報の取得」を参照してください。

アドレスはシンボル境界に存在する必要はありません。 アドレスがシンボルの先頭の後、シンボルの終わりより前 (シンボルの先頭にシンボル サイズを加えたもの) である場合、関数はシンボルを見つけます。

シンボル名によるシンボルの取得

特定のモジュールとシンボル名の SYMBOL_INFO 構造体のシンボリック情報を取得するには、SymFromName 関数を使用します。 遅延シンボルの読み込みが設定されている場合、SymFromName はモジュールのシンボル ファイルがまだ読み込まれていない場合に読み込みを試みます。 モジュール名とシンボル名を指定するには、構文 Module!SymName を使用します。 「!」文字は、モジュール名をシンボル名から区切ります。 例については、「名前によるシンボル情報の取得」を参照してください。

住所別の行番号の取得

特定のアドレスのソース コードの場所を取得するには、SymGetLineFromAddr64 関数を使用します。 この関数は、指定したアドレスによって参照されるソース ファイル名と行番号の場所を含む IMAGEHLP_LINE64 構造体に入力します。 例については、「アドレスによるシンボル情報の取得」を参照してください。

シンボル名による行番号の取得

特定のシンボル名のソース コードの場所を取得するには、SymGetLineFromName64 関数を使用します。 この関数は SymGetSymFromName64 に似ていますが、IMAGEHLP_LINE64 構造体を取得します。 SymGetLineFromAddr64 または SymGetLineFromName64 を使用するには、SymSetOptions 関数を使用して行の読み込みオプション (SYMOPT_LOAD_LINES) を設定する必要があります。 例については、「名前によるシンボル情報の取得」を参照してください。