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


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

Выполняет поиск символов PDB, соответствующих указанным критериям.

Синтаксис

BOOL IMAGEAPI SymSearch(
  [in]           HANDLE                         hProcess,
  [in]           ULONG64                        BaseOfDll,
  [in, optional] DWORD                          Index,
  [in, optional] DWORD                          SymTag,
  [in, optional] PCSTR                          Mask,
  [in, optional] DWORD64                        Address,
  [in]           PSYM_ENUMERATESYMBOLS_CALLBACK EnumSymbolsCallback,
  [in, optional] PVOID                          UserContext,
  [in]           DWORD                          Options
);

Параметры

[in] hProcess

Дескриптор процесса. Этот дескриптор должен быть ранее передан в функцию SymInitialize .

[in] BaseOfDll

Базовый адрес модуля. Если это значение равно нулю и Маска содержит восклицательный знак (!), функция выполняет поиск по модулям. Если это значение равно нулю и маска не содержит восклицательный знак, функция использует область, установленный функцией SymSetContext.

[in, optional] Index

Уникальное значение для символа.

[in, optional] SymTag

Классификация PDB. Эти значения определяются в Dbghelp.h в типе перечисления SymTagEnum . Описание см. в документации по PDB.

[in, optional] Mask

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

[in, optional] Address

Адрес символа.

[in] EnumSymbolsCallback

Функция обратного вызова SymEnumSymbolsProc , которая получает сведения о символах.

[in, optional] UserContext

Определяемое пользователем значение, передаваемое в функцию обратного вызова, или NULL. Этот параметр обычно используется приложением для передачи указателя на структуру данных, которая предоставляет контекст для функции обратного вызова.

[in] Options

Параметры, управляющие поведением этой функции.

Значение Значение
SYMSEARCH_ALLITEMS
0x08
Включите все символы и другие данные в PDB-файлы.

DbgHelp 6.6 и более ранних версий: Это значение не поддерживается.

SYMSEARCH_GLOBALSONLY
0x04
Поиск только глобальных символов.
SYMSEARCH_MASKOBJS
0x01
Только для внутреннего использования.
SYMSEARCH_RECURSE
0x02
Выполните рекурс сверху, чтобы найти все символы.

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

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

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

Комментарии

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

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

Требования

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

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

Функции DbgHelp

SymEnumSymbolsProc