IDebugSymbols2::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 die Suche gestartet werden soll. Alle Elemente im Quellpfad vor StartElement werden von der Suche ausgeschlossen. Der Index des ersten Elements ist 0. 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 nach mehreren Übereinstimmungen zu suchen.

[in] File

Gibt den Pfad und den Dateinamen der zu suchenden 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 (nicht über 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 , die zum Suchen der Datei verwendet wurde. Wenn PufferNULL 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 kann auch Fehlerwerte zurückgeben. 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 Die Datei 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 Datei an das Verzeichnis angefügt. Wenn keine Übereinstimmung gefunden wird, wird dieser Prozess wiederholt und jedes Mal, wenn das erste Verzeichnis vom Anfang des Dateipfads entfernt wird. Wenn der Quellpfad beispielsweise das Verzeichnis C:\a\b und File 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 einzubeziehen, verwenden Sie FindSourceFileAndToken mit einer Moduladresse, die in ModAddr angegeben ist.
 
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 (einschließlich Dbgeng.h)

Weitere Informationen

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3