Bagikan melalui


Metode IDebugSymbols2::FindSourceFile (dbgeng.h)

Metode FindSourceFile mencari jalur sumber untuk file sumber tertentu.

Sintaks

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

Menentukan indeks elemen dalam jalur sumber untuk mulai mencari. Semua elemen di jalur sumber sebelum StartElement dikecualikan dari pencarian. Indeks elemen pertama adalah nol. Jika StartElement lebih besar dari atau sama dengan jumlah elemen di jalur sumber, sistem pengarsipan diperiksa secara langsung.

Parameter ini dapat digunakan dengan FoundElement untuk memeriksa beberapa kecocokan di jalur sumber.

[in] File

Menentukan jalur dan nama file file yang akan dicari.

[in] Flags

Menentukan bendera pencarian. Untuk deskripsi bendera ini, lihat DEBUG_FIND_SOURCE_XXX.

Bendera DEBUG_FIND_SOURCE_TOKEN_LOOKUP tidak boleh diatur. Bendera DEBUG_FIND_SOURCE_NO_SRCSRV diabaikan karena metode ini tidak menyertakan server sumber dalam pencarian.

[out, optional] FoundElement

Menerima indeks elemen dalam jalur sumber yang berisi file. Jika file ditemukan langsung pada sistem pengarsipan (tidak menggunakan jalur sumber) maka -1 dikembalikan ke FoundElement. Jika FoundElementNULL, informasi ini tidak dikembalikan.

[out, optional] Buffer

Menerima jalur dan nama file yang ditemukan. Jika bendera DEBUG_FIND_SOURCE_FULL_PATH diatur, ini adalah nama jalur kanonis lengkap untuk file. Jika tidak, itu adalah perangkaian direktori di jalur sumber dengan ekor File yang digunakan untuk menemukan file. Jika BufferNULL, informasi ini tidak dikembalikan.

[in] BufferSize

Menentukan ukuran, dalam karakter, dari buffer Buffer .

[out, optional] FoundSize

Menentukan ukuran, dalam karakter, dari nama file. Jika FoundSizeNULL, informasi ini tidak dikembalikan.

Nilai kembali

Metode ini juga dapat mengembalikan nilai kesalahan. Lihat Mengembalikan Nilai untuk detail selengkapnya.

Menampilkan kode Deskripsi
S_OK
Metode berhasil.
E_NOINTERFACE
File tidak ditemukan pada jalur sumber.

Keterangan

Mesin menggunakan langkah-langkah berikut--dalam urutan--untuk mencari file:

  1. Untuk setiap direktori di jalur sumber, upaya dilakukan untuk menemukan tumpang tindih antara akhir jalur direktori dan awal jalur file. Misalnya, jika jalur sumber berisi direktori C:\a\b\c\d dan File adalah c\d\e\samplefile.c, file C:\a\b\c\d\e\samplefile.c cocok.

    Jika bendera DEBUG_FIND_SOURCE_BEST_MATCH diatur, kecocokan dengan tumpang tindih terpanjang dikembalikan; jika tidak, kecocokan pertama dikembalikan.

  2. Untuk setiap direktori di jalur sumber, File ditambahkan ke direktori. Jika tidak ada kecocokan yang ditemukan, proses ini diulang dan setiap kali direktori pertama dihapus dari awal jalur file. Misalnya, jika jalur sumber berisi direktori C:\a\b dan File adalah c\d\e\samplefile.c, maka file C:\a\b\e\samplefile.c cocok.

    Kecocokan pertama yang ditemukan dikembalikan.

  3. File dicari langsung pada sistem pengarsipan.
Catatan Server sumber apa pun di jalur sumber diabaikan. Untuk menyertakan server sumber dalam pencarian, gunakan FindSourceFileAndToken dengan alamat modul yang ditentukan dalam ModAddr.
 
Untuk informasi selengkapnya tentang menggunakan jalur sumber, lihat Menggunakan File Sumber. Untuk gambaran umum jalur sumber dan sintaksnya, lihat Jalur Sumber.

Persyaratan

Persyaratan Nilai
Target Platform Desktop
Header dbgeng.h (termasuk Dbgeng.h)

Lihat juga

DEBUG_FIND_SOURCE_XXX

FindSourceFileAndToken

GetSourceFileLineOffsets

GetSourcePathElement

IDebugSymbols

IDebugSymbols2

IDebugSymbols3