Метод IDebugSymbols3::FindSourceFile (dbgeng.h)
Метод FindSourceFile выполняет поиск указанного исходного файла по исходному пути.
Синтаксис
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
);
Параметры
[in] StartElement
Указывает индекс элемента в исходном пути для начала поиска. Все элементы в исходном пути до StartElement исключаются из поиска. Индекс первого элемента равен нулю. Если startElement больше или равно количеству элементов в исходном пути, система подачи проверяется напрямую.
Этот параметр можно использовать с FoundElement для проверка для нескольких совпадений в исходном пути.
[in] File
Указывает путь и имя файла для поиска.
[in] Flags
Указывает флаги поиска. Описание этих флагов см. в разделе DEBUG_FIND_SOURCE_XXX.
Флаг DEBUG_FIND_SOURCE_TOKEN_LOOKUP устанавливать не следует. Флаг DEBUG_FIND_SOURCE_NO_SRCSRV игнорируется, так как этот метод не включает исходные серверы в поиск.
[out, optional] FoundElement
Получает индекс элемента в исходном пути, который содержит файл. Если файл был найден непосредственно в системе подачи данных (не используя исходный путь), в FoundElement возвращается значение -1. Если параметр FoundElement имеет значение NULL, эта информация не возвращается.
[out, optional] Buffer
Получает путь и имя найденного файла. Если флаг DEBUG_FIND_SOURCE_FULL_PATH установлен, это полное каноническое имя пути к файлу. В противном случае для поиска файла используется объединение каталога в исходном пути с конечным фрагментом Файла . Если параметр Buffer имеет значение NULL, эта информация не возвращается.
[in] BufferSize
Указывает размер буфера буфера буфера (в символах).
[out, optional] FoundSize
Указывает размер (в символах) имени файла. Если параметр FoundSize имеет значение NULL, эти сведения не возвращаются.
Возвращаемое значение
Этот метод также может возвращать значения ошибок. Дополнительные сведения см. в разделе Возвращаемые значения .
Код возврата | Описание |
---|---|
|
Метод выполнен успешно. |
|
Файл не найден в исходном пути. |
Комментарии
Для поиска файла подсистема выполняет следующие действия по порядку:
-
Для каждого каталога в исходном пути выполняется попытка найти перекрытие между концом пути к каталогу и началом пути к файлу. Например, если исходный путь содержит каталог C:\a\b\c\d, а файл — c\d\e\samplefile.c, то файл C:\a\b\c\d\e\samplefile.c является совпадением.
Если установлен флаг DEBUG_FIND_SOURCE_BEST_MATCH, возвращается совпадение с самым длинным перекрытием; В противном случае возвращается первое совпадение.
-
Для каждого каталога в исходном пути к каталогу добавляется файл . Если совпадение не найдено, этот процесс повторяется и каждый раз при удалении первого каталога из начала пути к файлу. Например, если исходный путь содержит каталог C:\a\b, а файл — c\d\e\samplefile.c, то файл C:\a\b\e\samplefile.c является совпадением.
Возвращается первое найденное совпадение.
- Файл ищется непосредственно в системе подачи.
Требования
Требование | Значение |
---|---|
Целевая платформа | Персональный компьютер |
Верхняя часть | dbgeng.h (включая Dbgeng.h) |
См. также раздел
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по