My Project
|
#include <StackWalker.h>
Classes | |
struct | CallstackEntry |
Public Types | |
enum | StackWalkOptions { RetrieveNone = 0, RetrieveSymbol = 1, RetrieveLine = 2, RetrieveModuleInfo = 4, RetrieveFileVersion = 8, RetrieveVerbose = 0xF, SymBuildPath = 0x10, SymUseSymSrv = 0x20, SymAll = 0x30, OptionsAll = 0x3F } |
enum | { STACKWALK_MAX_NAMELEN = 1024 } |
typedef enum StackWalker::StackWalkOptions | StackWalkOptions |
typedef BOOL(__stdcall * | PReadProcessMemoryRoutine )(HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead, LPVOID pUserData) |
Public Member Functions | |
StackWalker (int options=OptionsAll, LPCSTR szSymPath=NULL, DWORD dwProcessId=GetCurrentProcessId(), HANDLE hProcess=GetCurrentProcess()) | |
StackWalker (DWORD dwProcessId, HANDLE hProcess) | |
virtual | ~StackWalker () |
BOOL | LoadModules () |
BOOL | ShowCallstack (HANDLE hThread=GetCurrentThread(), const CONTEXT *context=NULL, PReadProcessMemoryRoutine readMemoryFunction=NULL, LPVOID pUserData=NULL) |
Protected Types | |
enum | CallstackEntryType { firstEntry, nextEntry, lastEntry } |
typedef struct StackWalker::CallstackEntry | CallstackEntry |
Protected Member Functions | |
virtual void | OnSymInit (LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUserName) |
virtual void | OnLoadModule (LPCSTR img, LPCSTR mod, DWORD64 baseAddr, DWORD size, DWORD result, LPCSTR symType, LPCSTR pdbName, ULONGLONG fileVersion) |
virtual void | OnCallstackEntry (CallstackEntryType eType, CallstackEntry &entry) |
virtual void | OnDbgHelpErr (LPCSTR szFuncName, DWORD gle, DWORD64 addr) |
virtual void | OnOutput (LPCSTR szText) |
Static Protected Member Functions | |
static BOOL __stdcall | myReadProcMem (HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead) |
Protected Attributes | |
StackWalkerInternal * | m_sw |
HANDLE | m_hProcess |
DWORD | m_dwProcessId |
BOOL | m_modulesLoaded |
LPSTR | m_szSymPath |
int | m_options |
friend | StackWalkerInternal |
typedef struct StackWalker::CallstackEntry StackWalker::CallstackEntry [protected] |
typedef BOOL(__stdcall * StackWalker::PReadProcessMemoryRoutine)(HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead, LPVOID pUserData) |
enum StackWalker::CallstackEntryType [protected] |
StackWalker::StackWalker | ( | int | options = OptionsAll , |
LPCSTR | szSymPath = NULL , |
||
DWORD | dwProcessId = GetCurrentProcessId() , |
||
HANDLE | hProcess = GetCurrentProcess() |
||
) |
StackWalker::StackWalker | ( | DWORD | dwProcessId, |
HANDLE | hProcess | ||
) |
StackWalker::~StackWalker | ( | ) | [virtual] |
BOOL StackWalker::LoadModules | ( | ) |
BOOL __stdcall StackWalker::myReadProcMem | ( | HANDLE | hProcess, |
DWORD64 | qwBaseAddress, | ||
PVOID | lpBuffer, | ||
DWORD | nSize, | ||
LPDWORD | lpNumberOfBytesRead | ||
) | [static, protected] |
void StackWalker::OnCallstackEntry | ( | CallstackEntryType | eType, |
CallstackEntry & | entry | ||
) | [protected, virtual] |
void StackWalker::OnDbgHelpErr | ( | LPCSTR | szFuncName, |
DWORD | gle, | ||
DWORD64 | addr | ||
) | [protected, virtual] |
void StackWalker::OnLoadModule | ( | LPCSTR | img, |
LPCSTR | mod, | ||
DWORD64 | baseAddr, | ||
DWORD | size, | ||
DWORD | result, | ||
LPCSTR | symType, | ||
LPCSTR | pdbName, | ||
ULONGLONG | fileVersion | ||
) | [protected, virtual] |
void StackWalker::OnOutput | ( | LPCSTR | szText | ) | [protected, virtual] |
Reimplemented in SallyAPI::Exception::CExceptionStackWalker.
void StackWalker::OnSymInit | ( | LPCSTR | szSearchPath, |
DWORD | symOptions, | ||
LPCSTR | szUserName | ||
) | [protected, virtual] |
BOOL StackWalker::ShowCallstack | ( | HANDLE | hThread = GetCurrentThread() , |
const CONTEXT * | context = NULL , |
||
PReadProcessMemoryRoutine | readMemoryFunction = NULL , |
||
LPVOID | pUserData = NULL |
||
) |
DWORD StackWalker::m_dwProcessId [protected] |
HANDLE StackWalker::m_hProcess [protected] |
BOOL StackWalker::m_modulesLoaded [protected] |
int StackWalker::m_options [protected] |
StackWalkerInternal* StackWalker::m_sw [protected] |
LPSTR StackWalker::m_szSymPath [protected] |
friend StackWalker::StackWalkerInternal [protected] |