Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

77 lines
2.0 KiB

//----------------------------------------------------------------------------
//
// Stack walking support.
//
// Copyright (C) Microsoft Corporation, 1997-2002.
//
//----------------------------------------------------------------------------
#ifndef _STKWALK_H_
#define _STKWALK_H_
extern BOOL g_AllowCorStack;
extern BOOL g_DebugCorStack;
#define IA64_SAVE_IFS(Frame) ((Frame)->Reserved[0])
#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]
#define STACK_NO_DEFAULT 0x00000000
#define STACK_INSTR_DEFAULT 0x00000001
#define STACK_STACK_DEFAULT 0x00000002
#define STACK_FRAME_DEFAULT 0x00000004
#define STACK_ALL_DEFAULT 0x00000007
// Extra flag for stack trace format that overrides all
// others and indicates a raw pointer stack dump.
#define RAW_STACK_DUMP 0x80000000
LPVOID
SwFunctionTableAccess(
HANDLE hProcess,
ULONG64 AddrBase
);
VOID
DoStackTrace(
DebugClient* Client,
ULONG64 FramePointer,
ULONG64 StackPointer,
ULONG64 InstructionPointer,
ULONG PointerDefaults,
ULONG NumFrames,
ULONG TraceFlags
);
VOID
PrintStackFrame(
PDEBUG_STACK_FRAME StackFrame,
PDEBUG_STACK_FRAME PrevFrame,
ULONG Flags
);
VOID
PrintStackTrace(
ULONG NumFrames,
PDEBUG_STACK_FRAME StackFrames,
ULONG Flags
);
DWORD
StackTrace(
DebugClient* Client,
ULONG64 FramePointer,
ULONG64 StackPointer,
ULONG64 InstructionPointer,
ULONG PointerDefaults,
PDEBUG_STACK_FRAME StackFrames,
ULONG NumFrames,
ULONG64 ExtThread,
ULONG Flags,
BOOL EstablishingScope
);
#endif // #ifndef _STKWALK_H_