次の方法で共有


SplitSymbols 関数 (imagehlp.h)

指定したイメージからシンボルを取り除きます。

構文

BOOL IMAGEAPI SplitSymbols(
  [in]  PSTR  ImageName,
  [in]  PCSTR SymbolsPath,
  [out] PSTR  SymbolFilePath,
  [in]  ULONG Flags
);

パラメーター

[in] ImageName

シンボルの分割元となるイメージの名前。

[in] SymbolsPath

シンボルを格納するためのサブディレクトリ。 このパラメーターは省略可能です。

[out] SymbolFilePath

生成されたシンボル ファイルの名前。 このファイルは通常、.dbg 拡張子を持ちます。

[in] Flags

画像から分割する情報。 このパラメーターには、0 または次の値の組み合わせを指定できます。

説明
SPLITSYM_EXTRACT_ALL
0x00000002
通常、シンボルが分割されたイメージには、シンボル ファイルの名前を持つ MISC デバッグ ディレクトリが引き続き含まれます。 そのため、デバッガーはシンボルを見つけることができます。 このフラグを使用すると、このリンクが削除されます。 最終的な結果は、Microsoft リンカーで -debug:none スイッチを使用した場合と似ています。
SPLITSYM_REMOVE_PRIVATE
0x00000001
これにより、シンボル ファイルを生成するときに、プライベート CodeView シンボリック情報が取り除かれます。
SPLITSYM_SYMBOLPATH_IS_SRC
0x00000004
シンボル ファイルのパスには、.pdb ファイルを検索するための代替パスが含まれています。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報を取得するには、 GetLastError を呼び出します。

解説

SplitSymbols 関数は、画像からシンボルを削除するときに使用する必要があります。 互換性のあるすべてのデバッガーが理解するシンボル ファイルが作成されます。 形式は WinNT.h で定義され、イメージ ヘッダーの後にセクション ヘッダーの配列、FPO 情報、およびイメージからのすべてのデバッグ シンボリック情報で構成されます。

SymbolsPath パラメーターが NULL の場合、シンボル ファイルはイメージが存在するディレクトリに格納されます。 それ以外の場合は、イメージの拡張機能と一致する SymbolsPath の下のサブディレクトリに格納されます。 このメソッドを使用すると、シンボル ファイルが競合する可能性が低くなります。 たとえば、myapp.exe のシンボルは SymbolsPath\exe ディレクトリに格納され、myapp.dll のシンボルは SymbolsPath\dll ディレクトリに格納されます。

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

要件

   
サポートされている最小のクライアント Windows XP (デスクトップ アプリのみ)
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー imagehlp.h
Library Imagehlp.lib
[DLL] Imagehlp.dll

関連項目

ImageHlp 関数