IDebugSymbols::FindSourceFile-Methode (dbgeng.h)

Die FindSourceFile-Methode durchsucht den Quellpfad nach einer angegebenen Quelldatei.

Syntax

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
);

Parameter

[in] StartElement

Gibt den Index eines Elements innerhalb des Quellpfads an, von dem aus mit der Suche begonnen werden soll. Alle Elemente im Quellpfad vor StartElement werden von der Suche ausgeschlossen. Der Index des ersten Elements ist null. Wenn StartElement größer oder gleich der Anzahl der Elemente im Quellpfad ist, wird das Ablagesystem direkt überprüft.

Dieser Parameter kann mit FoundElement verwendet werden, um im Quellpfad auf mehrere Übereinstimmungen zu überprüfen.

[in] File

Gibt den Pfad und Dateinamen der zu durchsuchenden Datei an.

[in] Flags

Gibt die Suchflags an. Eine Beschreibung dieser Flags finden Sie unter DEBUG_FIND_SOURCE_XXX.

Das Flag DEBUG_FIND_SOURCE_TOKEN_LOOKUP sollte nicht festgelegt werden. Das Flag DEBUG_FIND_SOURCE_NO_SRCSRV wird ignoriert, da diese Methode keine Quellserver in die Suche einschließt.

[out, optional] FoundElement

Empfängt den Index des Elements innerhalb des Quellpfads, der die Datei enthält. Wenn die Datei direkt im Ablagesystem gefunden wurde (ohne den Quellpfad), wird -1 an FoundElement zurückgegeben. Wenn FoundElementnull ist, werden diese Informationen nicht zurückgegeben.

[out, optional] Buffer

Empfängt den Pfad und Den Namen der gefundenen Datei. Wenn das Flag DEBUG_FIND_SOURCE_FULL_PATH festgelegt ist, ist dies der vollständige kanonische Pfadname für die Datei. Andernfalls ist es die Verkettung des Verzeichnisses im Quellpfad mit dem Ende der Datei , das zum Suchen der Datei verwendet wurde. Wenn BufferNULL ist, werden diese Informationen nicht zurückgegeben.

[in] BufferSize

Gibt die Größe des Pufferpuffers in Zeichen an.

[out, optional] FoundSize

Gibt die Größe des Dateinamens in Zeichen an. Wenn FoundSizenull ist, werden diese Informationen nicht zurückgegeben.

Rückgabewert

Diese Methode gibt möglicherweise auch Fehlerwerte zurück. Weitere Informationen finden Sie unter Rückgabewerte .

Rückgabecode BESCHREIBUNG
S_OK
Die Methode war erfolgreich.
E_NOINTERFACE
Die Datei wurde im Quellpfad nicht gefunden.

Hinweise

Die Engine verwendet die folgenden Schritte (in der Reihenfolge), um nach der Datei zu suchen:

  1. Für jedes Verzeichnis im Quellpfad wird versucht, eine Überlappung zwischen dem Ende des Verzeichnispfads und dem Anfang des Dateipfads zu finden. Wenn der Quellpfad beispielsweise das Verzeichnis C:\a\b\c\d und File c\d\e\samplefile.c enthält, ist die Datei C:\a\b\c\d\e\samplefile.c eine Übereinstimmung.

    Wenn das Flag DEBUG_FIND_SOURCE_BEST_MATCH festgelegt ist, wird die Übereinstimmung mit der längsten Überlappung zurückgegeben. Andernfalls wird die erste Übereinstimmung zurückgegeben.

  2. Für jedes Verzeichnis im Quellpfad wird File an das Verzeichnis angefügt. Wenn keine Übereinstimmung gefunden wird, wird dieser Prozess wiederholt und jedes Mal, wenn das erste Verzeichnis am Anfang des Dateipfads entfernt wird. Wenn der Quellpfad beispielsweise das Verzeichnis C:\a\b und Die Datei c\d\e\samplefile.c enthält, ist die Datei C:\a\b\e\samplefile.c eine Übereinstimmung.

    Die erste gefundene Übereinstimmung wird zurückgegeben.

  3. Die Datei wird direkt im Ablagesystem gesucht.
Hinweis Alle Quellserver im Quellpfad werden ignoriert. Um die Quellserver in die Suche einzuschließen, verwenden Sie FindSourceFileAndToken mit einer in ModAddr angegebenen Moduladresse.
 
Weitere Informationen zur Verwendung des Quellpfads finden Sie unter Verwenden von Quelldateien. Eine Übersicht über den Quellpfad und seine Syntax finden Sie unter Quellpfad.

Anforderungen

Anforderung Wert
Zielplattform Desktop
Kopfzeile dbgeng.h (dbgeng.h einschließen)

Weitere Informationen

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3