Metodo IDebugSymbols3::FindSourceFile (dbgeng.h)

Il metodo FindSourceFile cerca il percorso di origine per un file di origine specificato.

Sintassi

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

Parametri

[in] StartElement

Specifica l'indice di un elemento all'interno del percorso di origine da cui iniziare la ricerca. Tutti gli elementi nel percorso di origine prima che StartElement vengano esclusi dalla ricerca. L'indice del primo elemento è zero. Se StartElement è maggiore o uguale al numero di elementi nel percorso di origine, il sistema di archiviazione viene controllato direttamente.

Questo parametro può essere usato con FoundElement per verificare la presenza di più corrispondenze nel percorso di origine.

[in] File

Specifica il percorso e il nome del file da cercare.

[in] Flags

Specifica i flag di ricerca. Per una descrizione di questi flag, vedere DEBUG_FIND_SOURCE_XXX.

Il flag DEBUG_FIND_SOURCE_TOKEN_LOOKUP non deve essere impostato. Il flag DEBUG_FIND_SOURCE_NO_SRCSRV viene ignorato perché questo metodo non include server di origine nella ricerca.

[out, optional] FoundElement

Riceve l'indice dell'elemento all'interno del percorso di origine che contiene il file. Se il file è stato trovato direttamente nel sistema di archiviazione (non usando il percorso di origine), -1 viene restituito a FoundElement. Se FoundElement è NULL, queste informazioni non vengono restituite.

[out, optional] Buffer

Riceve il percorso e il nome del file trovato. Se il flag DEBUG_FIND_SOURCE_FULL_PATH è impostato, si tratta del nome del percorso canonico completo per il file. In caso contrario, è la concatenazione della directory nel percorso di origine con la parte finale di File usata per trovare il file. Se buffer è NULL, queste informazioni non vengono restituite.

[in] BufferSize

Specifica le dimensioni, in caratteri , del buffer buffer.

[out, optional] FoundSize

Specifica le dimensioni, in caratteri, del nome del file. Se FoundSize è NULL, queste informazioni non vengono restituite.

Valore restituito

Questo metodo può anche restituire valori di errore. Per altre informazioni, vedere Valori restituiti .

Codice restituito Descrizione
S_OK
Il metodo è stato eseguito correttamente.
E_NOINTERFACE
Il file non è stato trovato nel percorso di origine.

Commenti

Il motore usa i passaggi seguenti per cercare il file:

  1. Per ogni directory nel percorso di origine, viene eseguito un tentativo di trovare una sovrapposizione tra la fine del percorso della directory e l'inizio del percorso del file. Ad esempio, se il percorso di origine contiene una directory C:\a\b\c\d e File è c\d\e\samplefile.c, il file C:\a\b\c\d\e\samplefile.c è una corrispondenza.

    Se il flag DEBUG_FIND_SOURCE_BEST_MATCH è impostato, viene restituita la corrispondenza con la sovrapposizione più lunga; in caso contrario, viene restituita la prima corrispondenza.

  2. Per ogni directory nel percorso di origine, il file viene aggiunto alla directory. Se non viene trovata alcuna corrispondenza, questo processo viene ripetuto e ogni volta che la prima directory viene rimossa dall'inizio del percorso del file. Ad esempio, se il percorso di origine contiene una directory C:\a\b e File è c\d\e\samplefile.c, il file C:\a\b\e\samplefile.c è una corrispondenza.

    Viene restituita la prima corrispondenza trovata.

  3. Il file viene cercato direttamente nel sistema di archiviazione.
Nota Tutti i server di origine nel percorso di origine vengono ignorati. Per includere i server di origine nella ricerca, usare FindSourceFileAndToken con un indirizzo del modulo specificato in ModAddr.
 
Per altre informazioni sull'uso del percorso di origine, vedere Uso di file di origine. Per una panoramica del percorso di origine e della relativa sintassi, vedere Percorso di origine.

Requisiti

Requisito Valore
Piattaforma di destinazione Desktop
Intestazione dbgeng.h (includere Dbgeng.h)

Vedi anche

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3