Поделиться через


Функция SymGetSymbolFile (dbghelp.h)

Находит файл символов по указанному пути к символам.

Синтаксис

BOOL IMAGEAPI SymGetSymbolFile(
  [in, optional] HANDLE hProcess,
  [in, optional] PCSTR  SymPath,
  [in]           PCSTR  ImageFile,
  [in]           DWORD  Type,
  [out]          PSTR   SymbolFile,
  [in]           size_t cSymbolFile,
  [out]          PSTR   DbgFile,
  [in]           size_t cDbgFile
);

Параметры

[in, optional] hProcess

Дескриптор процесса, который изначально был передан функции SymInitialize .

Если этот дескриптор равен 0, SymPath не может иметь значение NULL. Используйте этот параметр для загрузки файла символов без вызова SymInitialize или SymCleanup.

[in, optional] SymPath

Путь к символу. Если этот параметр имеет значение NULL или пустую строку, функция использует путь к символам, заданный с помощью функции SymInitialize или SymSetSearchPath .

[in] ImageFile

Имя файла изображения.

[in] Type

Тип файла символов. Этот параметр может принимать одно из указанных ниже значений.

Значение Значение
sfImage
0
Файл .exe или .dll.
sfDbg
1
DBG-файл.
sfPdb
2
PDB-файл.
sfMpd
3
Зарезервировано.

[out] SymbolFile

Указатель на строку, завершающуюся значением NULL, которая получает имя файла символов.

[in] cSymbolFile

Размер буфера SymbolFile в символах.

[out] DbgFile

Указатель на буфер, получающий полный путь к файлу символов. Этот буфер должен содержать не менее MAX_PATH символов.

[in] cDbgFile

Размер буфера DbgFile в символах.

Возвращаемое значение

Если сервер находит допустимый файл символов, возвращается значение TRUE; В противном случае возвращается значение FALSE , а GetLastError — значение, указывающее, почему файл символов не был возвращен.

Комментарии

Все функции DbgHelp, такие как эта, являются однопоточными. Таким образом, вызовы из нескольких потоков к этой функции, скорее всего, приведут к непредвиденному поведению или повреждению памяти. Чтобы избежать этого, необходимо синхронизировать все параллельные вызовы из нескольких потоков в эту функцию.

Чтобы вызвать версию юникода этой функции, определите DBGHELP_TRANSLATE_TCHAR.

Требования

   
Целевая платформа Windows
Header dbghelp.h
Библиотека Dbghelp.lib
DLL Dbghelp.dll
Распространяемые компоненты DbgHelp.dll 6.3 или более поздней версии

См. также раздел

Функции DbgHelp

SymInitialize