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


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

Регистрирует функцию обратного вызова для использования процедурой выполнения стека на компьютерах Альфа.

Синтаксис

BOOL IMAGEAPI SymRegisterFunctionEntryCallback(
  [in] HANDLE                     hProcess,
  [in] PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
  [in] PVOID                      UserContext
);

Параметры

[in] hProcess

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

[in] CallbackFunction

Функция обратного вызова SymRegisterFunctionEntryCallbackProc64 .

[in] UserContext

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

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

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

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

Комментарии

Функция SymRegisterFunctionEntryCallback64 позволяет приложению регистрировать функцию обратного вызова для использования процедурой выполнения стека. Процедура выполнения стека вызывает зарегистрированную функцию обратного вызова, если ей не удается найти запись таблицы функций для адреса. В большинстве случаев процедура выполнения стека находит записи таблицы функций в таблице функций изображения, содержащего адрес. Однако в ситуациях, когда записи таблицы функций отсутствуют на изображении, этот обратный вызов позволяет отладчику предоставить запись таблицы функций из другого источника. Например, код, созданный во время выполнения на компьютерах Альфа, может определять динамические таблицы функций для поддержки обработки исключений и трассировки стека.

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

Эта функция заменяет функцию SymRegisterFunctionEntryCallback . Дополнительные сведения см. в разделе Обновленная поддержка платформы. SymRegisterFunctionEntryCallback определяется следующим образом в Dbghelp.h.

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymRegisterFunctionEntryCallback SymRegisterFunctionEntryCallback64
#else
BOOL
IMAGEAPI
SymRegisterFunctionEntryCallback(
    __in HANDLE hProcess,
    __in PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
    __in_opt PVOID UserContext
    );
#endif

Требования

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

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

Функции DbgHelp

StackWalk64

SymRegisterFunctionEntryCallbackProc64