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

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

Синтаксис

BOOL IMAGEAPI SymRegisterFunctionEntryCallback64(
  [in] HANDLE                       hProcess,
  [in] PSYMBOL_FUNCENTRY_CALLBACK64 CallbackFunction,
  [in] ULONG64                      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