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 |
---|---|
|
Die Methode war erfolgreich. |
|
Die Datei wurde im Quellpfad nicht gefunden. |
Hinweise
Die Engine verwendet die folgenden Schritte– in der Reihenfolge –, um nach der Datei zu suchen:
-
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.
-
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.
- Die Datei wird direkt im Ablagesystem gesucht.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Desktop |
Kopfzeile | dbgeng.h (einschließlich Dbgeng.h) |