15 #ifndef _MSPDB_CALLSTACK_H_INCLUDED_
16 #define _MSPDB_CALLSTACK_H_INCLUDED_
18 #if defined(PDB_DEBUGGING)
32 class SCP_IDumpHandler
abstract
35 virtual bool ResolveSymbols( ) PURE;
36 virtual
void OnBegin( ) PURE;
37 virtual
void OnEntry(
void*
address, const
char* module, const
char* symbol ) PURE;
38 virtual
void OnError( const
char* error ) PURE;
39 virtual
void OnEnd( ) PURE;
42 extern
HRESULT SCP_DumpStack( SCP_IDumpHandler* pISH );
45 #define SCP_MSPDBCS_MAX_SYMBOL_LENGTH 1000
46 #define SCP_MSPDBCS_MAX_MODULE_LENGTH _MAX_PATH
47 #define SCP_MSPDBCS_MAX_STACK_FRAMES 100
49 struct SCP_mspdbcs_SDumpStackThreadInfo
53 SCP_IDumpHandler* pIDS;
56 struct SCP_mspdbcs_SDumpStackSymbolInfo
60 char szModule[ SCP_MSPDBCS_MAX_MODULE_LENGTH ];
61 char szSymbol[ SCP_MSPDBCS_MAX_SYMBOL_LENGTH ];
65 extern BOOL SCP_mspdbcs_ResolveSymbol(
HANDLE hProcess, UINT_PTR dwAddress, SCP_mspdbcs_SDumpStackThreadInfo& siSymbol );
67 extern DWORD64
__stdcall SCP_mspdbcs_GetModuleBase(
HANDLE hProcess, DWORD64 returnAddress );
70 #endif // PDB_DEBUGGING
76 #endif // _MSPDB_CALLSTACK_H_INCLUDED_
void SCP_mspdbcs_Cleanup()
void SCP_mspdbcs_Initialise()