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


Функция SplitSymbols (imagehlp.h)

Удаляет символы из указанного изображения.

Синтаксис

BOOL IMAGEAPI SplitSymbols(
  [in]  PSTR  ImageName,
  [in]  PCSTR SymbolsPath,
  [out] PSTR  SymbolFilePath,
  [in]  ULONG Flags
);

Параметры

[in] ImageName

Имя изображения, от которого разделяются символы.

[in] SymbolsPath

Подкаталог для хранения символов. Этот параметр является необязательным.

[out] SymbolFilePath

Имя созданного файла символов. Этот файл обычно имеет расширение DBG.

[in] Flags

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

Значение Значение
SPLITSYM_EXTRACT_ALL
0x00000002
Обычно изображение с разделенными символами по-прежнему будет содержать каталог отладки MISC с именем файла символов. Таким образом, отладчик по-прежнему может найти символы. При использовании этого флага эта ссылка удаляется. Конечный результат аналогичен использованию переключателя -debug:none в компоновщике Майкрософт.
SPLITSYM_REMOVE_PRIVATE
0x00000001
При создании файла символов будут удалены частные символьные сведения CodeView.
SPLITSYM_SYMBOLPATH_IS_SRC
0x00000004
Путь к файлу символов содержит альтернативный путь для поиска PDB-файла.

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

Если функция выполнена успешно, возвращается значение TRUE.

Если функция завершается сбоем, возвращается значение FALSE. Чтобы получить расширенные сведения об ошибке, вызовите Метод GetLastError.

Комментарии

Функция SplitSymbols должна использоваться при снятии символов с изображения. Он создаст файл символов, понятный всем совместимым отладчикам. Формат определяется в WinNT.h и состоит из заголовка изображения, за которым следует массив заголовков разделов, сведения о FPO и все отладочные символические сведения из изображения.

Если параметр SymbolsPath имеет значение NULL, файл символов хранится в каталоге, где существует изображение. В противном случае он хранится в подкаталоге под SymbolsPath , который соответствует расширению изображения. Использование этого метода снижает вероятность конфликта файлов символов. Например, символы для myapp.exe будут находиться в каталоге SymbolsPath\exe, а символы для myapp.dll — в каталоге SymbolsPath\dll.

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

Требования

   
Минимальная версия клиента Windows XP [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header imagehlp.h
Библиотека Imagehlp.lib
DLL Imagehlp.dll

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

Функции ImageHlp