|
|
//----------------------------------------------------------------------------
//
// Stack walking support.
//
// Copyright (C) Microsoft Corporation, 1997-2001.
//
//----------------------------------------------------------------------------
#ifndef _STKWALK_H_
#define _STKWALK_H_
#define SAVE_EBP(f) (f)->Reserved[0]
#define TRAP_TSS(f) (f)->Reserved[1]
#define TRAP_EDITED(f) (f)->Reserved[1]
#define SAVE_TRAP(f) (f)->Reserved[2]
LPVOID SwFunctionTableAccess( HANDLE hProcess, ULONG64 AddrBase );
BOOL SwReadMemory( HANDLE hProcess, ULONG64 lpBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead );
BOOL SwReadMemory32( HANDLE hProcess, ULONG dwBaseAddress, LPVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead );
DWORD64 SwGetModuleBase( HANDLE hProcess, ULONG64 Address );
DWORD SwGetModuleBase32( HANDLE hProcess, DWORD Address );
VOID DoStackTrace( ULONG64 FramePointer, ULONG64 StackPointer, ULONG64 InstructionPointer, ULONG NumFrames, STACK_TRACE_TYPE TraceType );
VOID PrintStackFrame( PDEBUG_STACK_FRAME StackFrame, ULONG Flags );
VOID PrintStackTrace( ULONG NumFrames, PDEBUG_STACK_FRAME StackFrames, ULONG Flags );
DWORD StackTrace( ULONG64 FramePointer, ULONG64 StackPointer, ULONG64 InstructionPointer, PDEBUG_STACK_FRAME StackFrames, ULONG NumFrames, ULONG64 ExtThread, ULONG Flags, BOOL EstablishingScope );
#endif // #ifndef _STKWALK_H_
|