SymSetOptions 関数 (dbghelp.h)

オプション マスクを設定します。

構文

DWORD IMAGEAPI SymSetOptions(
  [in] DWORD SymOptions
);

パラメーター

[in] SymOptions

シンボル オプション。 0 は有効な値であり、すべてのオプションがオフになっていることを示します。 オプション値は、OR 演算子を使用して組み合わせて有効なオプション値を形成します。 有効な値は次のとおりです。

意味
SYMOPT_ALLOW_ABSOLUTE_SYMBOLS
0x00000800
絶対アドレスと共に格納されるシンボルの使用を有効にします。 ほとんどのシンボルは、モジュールのベースから RVA として格納されます。 DbgHelp は、絶対アドレスに変換します。 絶対アドレスとして格納されるシンボルがあります。 これらは非常に特殊な目的を持ち、通常は使用されません。

DbgHelp 5.1 以前: この値はサポートされていません。

SYMOPT_ALLOW_ZERO_ADDRESS
0x01000000
アドレスを持たないシンボルの使用を有効にします。 既定では、DbgHelp はアドレスを持たないシンボルを除外します。
SYMOPT_AUTO_PUBLICS
0x00010000
アドレスでシンボルを検索する場合、またはシンボルを列挙する場合は、グローバル シンボルまたは現在のスコープ内で見つからない場合を除き、パブリック シンボルを検索しないでください。 このオプションは 、SYMOPT_PUBLICS_ONLYには影響しません。

DbgHelp 5.1 以前: この値はサポートされていません。

SYMOPT_CASE_INSENSITIVE
0x00000001
すべてのシンボル検索は大文字と小文字を区別しません。
SYMOPT_DEBUG
0x80000000
OutputDebugString または SymRegisterCallbackProc64 コールバック関数を介してデバッグ出力を渡します。
SYMOPT_DEFERRED_LOADS
0x00000004
シンボルを読み込む必要がある参照が作成されるまで、シンボルは読み込まれません。 これは、シンボル ハンドラーを使用する最も高速で最も効率的な方法です。
SYMOPT_DISABLE_SYMSRV_AUTODETECT
0x02000000
シンボル パス内のシンボル サーバー ストアの自動検出を無効にします。"SRV*" の指定がなくても、以前の動作との互換性が維持されます。

DbgHelp 6.6 以前: この値はサポートされていません。

SYMOPT_EXACT_SYMBOLS
0x00000400
一致しない .pdb ファイルを読み込まない。 他のすべてが失敗した場合は、エクスポート シンボルを読み込まない。
SYMOPT_FAIL_CRITICAL_ERRORS
0x00000200
ドライブにメディアがないなどのメディアエラーが発生した場合は、システム ダイアログ ボックスを表示しません。 代わりに、エラーはサイレントモードで発生します。
SYMOPT_FAVOR_COMPRESSED
0x00800000
非圧縮ファイルと圧縮ファイルの両方が使用可能な場合は、圧縮ファイルを優先します。 このオプションは、低速接続に適しています。
SYMOPT_FLAT_DIRECTORY
0x00400000
シンボルは、既定のダウンストリーム ストアのルート ディレクトリに格納されます。

DbgHelp 6.1 以前: この値はサポートされていません。

SYMOPT_IGNORE_CVREC
0x00000080
.pdb ファイルを読み込むときに、イメージ ヘッダーの CodeView レコード内のパス情報を無視します。
SYMOPT_IGNORE_IMAGEDIR
0x00200000
イメージ ディレクトリを無視します。

DbgHelp 6.1 以前: この値はサポートされていません。

SYMOPT_IGNORE_NT_SYMPATH
0x00001000
ユーザーが有効なパスなしで SymSetSearchPath を呼び出す場合は、_NT_SYMBOL_PATHで指定されたパスを使用しないでください。

DbgHelp 5.1: この値はサポートされていません。

SYMOPT_INCLUDE_32BIT_MODULES
0x00002000
64 ビット Windows でデバッグする場合は、32 ビット モジュールを含めます。
SYMOPT_LOAD_ANYTHING
0x00000040
ファイル (.exe、.dbg.、または .pdb) が正しいファイルであることを確認するためのチェックを無効にします。 代わりに、最初のファイルを読み込みます。
SYMOPT_LOAD_LINES
0x00000010
行番号情報を読み込みます。
SYMOPT_NO_CPP
0x00000008
記号区切り記号 "::" を含むすべての C++ 装飾シンボルは、"__" に置き換えられます。 このオプションは、実際の C++ シンボル名の解析を処理できないデバッガーに対して存在します。
SYMOPT_NO_IMAGE_SEARCH
0x00020000
モジュール ヘッダーを読み取ることができない場合は、モジュールのシンボルを読み込むときに、イメージでシンボル パスを検索しないでください。

DbgHelp 5.1: この値はサポートされていません。

SYMOPT_NO_PROMPTS
0x00080000
シンボル サーバーからの検証を求めるメッセージが表示されないようにします。
SYMOPT_NO_PUBLICS
0x00008000
publics テーブルでシンボルを検索しないでください。 グローバル テーブルにはパブリック シンボルのコピーがあるため、このオプションはほとんど影響しません。

DbgHelp 5.1: この値はサポートされていません。

SYMOPT_NO_UNQUALIFIED_LOADS
0x00000100
呼び出し元が複数のモジュール間でシンボルを調べるとき、シンボルが読み込まれないようにします。 シンボルが既に読み込まれているモジュールのみを調べます。
SYMOPT_OVERWRITE
0x00100000
シンボル ストアのダウンレベル ストアを上書きします。

DbgHelp 6.1 以前: この値はサポートされていません。

SYMOPT_PUBLICS_ONLY
0x00004000
プライベート シンボルは使用しないでください。 以前の Windows リリースに付属していた DbgHelp のバージョンでは、パブリック シンボルのみがサポートされました。このオプションは、この制限との互換性を提供します。

DbgHelp 5.1: この値はサポートされていません。

SYMOPT_SECURE
0x00040000
DbgHelp では、SymSrv 以外のシンボル サーバーは読み込まれません。 SymSrv では、 _NT_SYMBOL_PATHで指定されたダウンストリーム ストアは使用されません。 このフラグを設定した後は、クリアできません。

DbgHelp 6.0 および 6.1: このフラグはクリアできます。

DbgHelp 5.1: この値はサポートされていません。

SYMOPT_UNDNAME
0x00000002
すべてのシンボルは、未コーディングの形式で表示されます。

このオプションは、グローバルシンボルまたはローカルシンボルは非コーディングで保存されるため、影響を受けません。 このオプションは、パブリック シンボルにのみ適用されます。

戻り値

関数は、現在のオプション マスクを返します。

解説

オプション値は、ライブラリがアプリケーションで使用されている間に、任意の回数変更できます。 オプションの変更は、シンボル ハンドラーに対する今後のすべての呼び出しに影響します。

現在のオプション マスクを取得するには、 SymGetOptions 関数を呼び出します。

この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。

例については、「 シンボル ハンドラーの初期化」を参照してください。

要件

   
対象プラットフォーム Windows
ヘッダー dbghelp.h
Library Dbghelp.lib
[DLL] Dbghelp.dll
再頒布可能パッケージ DbgHelp.dll 5.1 以降

関連項目

DbgHelp 関数

SymGetOptions