IDebugSymbols3::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

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

[out, optional] Buffer

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

[in] BufferSize

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

[out, optional] FoundSize

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

戻り値

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

リターン コード 説明
S_OK
メソッドは正常に実行されました。
E_NOINTERFACE
ソース パスにファイルが見つかりませんでした。

注釈

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

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

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

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

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

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

要件

要件
対象プラットフォーム デスクトップ
Header dbgeng.h (Dbgeng.h を含む)

こちらもご覧ください

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3