Platform SDK: Debugging and Error Handling |
The StackWalk function provides a portable method for obtaining a stack trace.
This function is implemented as a wrapper that calls StackWalk64. For more information, see New 64-bit Functions.
BOOL StackWalk( DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE TranslateAddress );
For StackWalk64, the parameter list is as follows.
BOOL StackWalk64( DWORD MachineType, HANDLE hProcess, HANDLE hThread, LPSTACKFRAME64 StackFrame, PVOID ContextRecord, PREAD_PROCESS_MEMORY_ROUTINE64 ReadMemoryRoutine, PFUNCTION_TABLE_ACCESS_ROUTINE64 FunctionTableAccessRoutine, PGET_MODULE_BASE_ROUTINE64 GetModuleBaseRoutine, PTRANSLATE_ADDRESS_ROUTINE64 TranslateAddress );
Value | Meaning |
---|---|
IMAGE_FILE_MACHINE_I386 | Intel |
IMAGE_FILE_MACHINE_ALPHA | DEC Alpha |
IMAGE_FILE_MACHINE_IA64 | Intel (64-bit) |
IMAGE_FILE_MACHINE_AXP64 | DEC Alpha (64-bit) |
The symbol handler provides functions that load and access the run-time table. If these functions are used, then SymFunctionTableAccess can be passed as a valid parameter.
The symbol handler provides functions that load and maintain module information. If these functions are used, then SymGetModuleBase can be passed as a valid parameter.
Most callers of StackWalk can safely pass NULL for this parameter.
If the function succeeds, the return value is TRUE.
If the function fails, the return value is FALSE. To retrieve extended error information, call GetLastError.
The StackWalk function provides a portable method for obtaining a stack trace. Using the StackWalk function is recommended over writing your own function because of all the complexities associated with stack walking on platforms. In addition, there are compiler options that cause the stack to appear differently, depending on how the module is compiled. By using this function, your application has a portable stack trace that continues to work as the compiler and operating system change.
Windows NT/2000: Requires Windows NT 4.0 or later.
Windows 95/98: Requires Windows 95 or later. Available as a redistributable for Windows 95.
Header: Declared in Dbghelp.h.
Library: Use Dbghelp.lib.
Debug Help Library Overview, DbgHelp Functions, CONTEXT, FunctionTableAccessProc, GetModuleBaseProc, ReadProcessMemoryProc, STACKFRAME, TranslateAddressProc