共用方式為


PSYMBOL_FUNCENTRY_CALLBACK回呼函式 (dbghelp.h)

搭配 SymRegisterFunctionEntryCallback64 函式使用的應用程式定義回呼函式。 堆疊逐步程式會呼叫它。

PSYMBOL_FUNCENTRY_CALLBACK64類型會定義這個回呼函式的指標。 SymRegisterFunctionEntryCallbackProc64 是應用程式定義函數名稱的佔位符。

語法

PSYMBOL_FUNCENTRY_CALLBACK PsymbolFuncentryCallback;

PVOID PsymbolFuncentryCallback(
  [in]           HANDLE hProcess,
  [in]           DWORD AddrBase,
  [in, optional] PVOID UserContext
)
{...}

參數

[in] hProcess

原本傳遞至 StackWalk64 函式之進程的句柄。

[in] AddrBase

回呼函式應該傳回函式數據表專案的指令位址。

[in, optional] UserContext

SymRegisterFunctionEntryCallback64NULL 中指定的使用者定義值。 一般而言,這個參數是由應用程式用來傳遞數據結構的指標,讓回呼函式建立一些內容。

傳回值

如果沒有可用的函式數據表專案,則傳回 NULL 值。

成功時,傳回 IMAGE_RUNTIME_FUNCTION_ENTRY 結構的指標。 如需此函式的定義,請參閱頭檔 WinNT.h。

備註

結構必須完全以偵錯的進程形式傳回。 某些成員可能是進程位址空間中其他位置的指標。 您可以呼叫 ReadProcessMemoryProc64 回呼函式,以擷取這些位置的資訊。

呼叫端應用程式會透過已註冊的回呼函式呼叫,因為 呼叫StackWalk64 函式。 呼叫端應用程式必須備妥,才能造成可能的副作用。 如果應用程式只有一個供多個線程使用的回呼函式,則在回呼函式的內容中,可能需要同步處理某些類型的數據存取。

此函式類似於 FunctionTableAccessProc64 回呼函式。 差異在於 FunctionTableAccessProc64 會傳回 IMAGE_FUNCTION_ENTRY 結構,而此函式會傳回 IMAGE_RUNTIME_FUNCTION_ENTRY 結構。

此回呼函式會取代 PSYMBOL_FUNCENTRY_CALLBACK 回呼函式。 PSYMBOL_FUNCENTRY_CALLBACK 定義如下的 Dbghelp.h。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYMBOL_FUNCENTRY_CALLBACK PSYMBOL_FUNCENTRY_CALLBACK64
#endif

typedef
PVOID
(CALLBACK *PSYMBOL_FUNCENTRY_CALLBACK)(
    __in HANDLE hProcess,
    __in DWORD AddrBase,
    __in_opt PVOID UserContext
    );

規格需求

需求
目標平台 Windows
標頭 dbghelp.h
可轉散發套件 DbgHelp.dll 5.1 或更新版本

另請參閱

DbgHelp 函式

SymRegisterFunctionEntryCallback64