次の方法で共有


IDebugSymbols::FindSourceFile メソッド (dbgeng.h)

FindSourceFile メソッドは、指定したソース ファイルのソース パスを検索します。

構文

HRESULT FindSourceFile(
  [in]            ULONG  StartElement,
  [in]            PCSTR  File,
  [in]            ULONG  Flags,
  [out, optional] PULONG FoundElement,
  [out, optional] PSTR   Buffer,
  [in]            ULONG  BufferSize,
  [out, optional] PULONG FoundSize
);

パラメーター

[in] StartElement

検索を開始するソース パス内の要素のインデックスを指定します。 StartElement 前のソース パス内のすべての要素は、検索から除外されます。 最初の要素のインデックスは 0 です。 startElement がソース パス内の要素数以上の場合、ファイリング システムが直接チェックされます。

このパラメーターは、FoundElement と共に使用して、ソース パスで複数の一致があるかどうかを確認できます。

[in] File

検索するファイルのパスとファイル名を指定します。

[in] Flags

検索フラグを指定します。 これらのフラグの詳細については、DEBUG_FIND_SOURCE_XXXを参照してください。

フラグDEBUG_FIND_SOURCE_TOKEN_LOOKUPは設定しないでください。 このメソッドは検索にソース サーバーを含めないため、フラグ DEBUG_FIND_SOURCE_NO_SRCSRVは無視されます。

[out, optional] FoundElement

ファイルを含むソース パス内の要素のインデックスを受け取ります。 ファイルが (ソース パスを使用していない) ファイリング システムで直接見つかった場合は、-1 FoundElementに返されます。 FoundElement NULL 場合、この情報は返されません。

[out, optional] Buffer

見つかったファイルのパスと名前を受け取ります。 フラグ DEBUG_FIND_SOURCE_FULL_PATHが設定されている場合、これはファイルの完全な正規パス名です。 それ以外の場合は、ソース パス内のディレクトリと、ファイルの検索に使用された ファイル の末尾が連結されます。 バッファー が NULL 場合、この情報は返されません。

[in] BufferSize

バッファー バッファーのサイズを文字数で指定します。

[out, optional] FoundSize

ファイルの名前のサイズを文字で指定します。 FoundSize が NULL 場合、この情報は返されません。

戻り値

このメソッドは、エラー値を返す場合もあります。 詳細については 戻り値の を参照してください。

リターン コード 形容
S_OK
メソッドが成功しました。
E_NOINTERFACE
ファイル がソース パスに見つかりませんでした。

備考

エンジンは、次の手順を使用して、ファイルを順に検索します。

  1. ソース パス内の各ディレクトリについて、ディレクトリ パスの末尾とファイル パスの先頭の間の重複を見つけようとします。 たとえば、ソース パスにディレクトリ C:\a\b\c\d が含まれており、ファイル が c\d\e\samplefile.c の場合、ファイル C:\a\b\c\d\e\samplefile.c は一致します。

    フラグDEBUG_FIND_SOURCE_BEST_MATCHが設定されている場合は、最も長い重複を持つ一致が返されます。それ以外の場合は、最初の一致が返されます。

  2. ソース パス内のディレクトリごとに、ファイル がディレクトリに追加されます。 一致するものが見つからない場合、このプロセスは繰り返され、最初のディレクトリがファイル パスの先頭から削除されるたびに実行されます。 たとえば、ソース パスにディレクトリ C:\a\b が含まれており、ファイル が c\d\e\samplefile.c の場合、ファイル C:\a\b\e\samplefile.c は一致します。

    最初に見つかった一致が返されます。

  3. ファイル は、ファイリング システムで直接検索されます。
ソース パス内のすべてのソース サーバーは無視されます。 検索にソース サーバーを含めるには、FindSourceFileAndToken を使用し、modAddr で指定されたモジュール アドレス使用します。
 
ソース パスの使用方法の詳細については、「ソース ファイル の使用」を参照してください。 ソース パスとその構文の概要については、「ソース パスの 参照してください。

必要条件

要件 価値
ターゲット プラットフォーム デスクトップ
ヘッダー dbgeng.h (Dbgeng.h を含む)

関連項目

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2 する

IDebugSymbols3