#include <StackWalker.h>
|
enum | { STACKWALK_MAX_NAMELEN = 1024
} |
|
typedef BOOL(__stdcall * | PReadProcessMemoryRoutine) (HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead, LPVOID pUserData) |
|
enum | StackWalkOptions {
RetrieveNone = 0
, RetrieveSymbol = 1
, RetrieveLine = 2
, RetrieveModuleInfo = 4
,
RetrieveFileVersion = 8
, RetrieveVerbose = 0xF
, SymBuildPath = 0x10
, SymUseSymSrv = 0x20
,
SymAll = 0x30
, OptionsAll = 0x3F
} |
|
typedef enum StackWalker::StackWalkOptions | StackWalkOptions |
|
|
virtual void | OnCallstackEntry (CallstackEntryType eType, CallstackEntry &entry) |
|
virtual void | OnDbgHelpErr (LPCSTR szFuncName, DWORD gle, DWORD64 addr) |
|
virtual void | OnLoadModule (LPCSTR img, LPCSTR mod, DWORD64 baseAddr, DWORD size, DWORD result, LPCSTR symType, LPCSTR pdbName, ULONGLONG fileVersion) |
|
virtual void | OnOutput (LPCSTR szText) |
|
virtual void | OnSymInit (LPCSTR szSearchPath, DWORD symOptions, LPCSTR szUserName) |
|
|
static BOOL __stdcall | myReadProcMem (HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead) |
|
◆ CallstackEntry
◆ PReadProcessMemoryRoutine
typedef BOOL(__stdcall * StackWalker::PReadProcessMemoryRoutine) (HANDLE hProcess, DWORD64 qwBaseAddress, PVOID lpBuffer, DWORD nSize, LPDWORD lpNumberOfBytesRead, LPVOID pUserData) |
◆ StackWalkOptions
◆ anonymous enum
Enumerator |
---|
STACKWALK_MAX_NAMELEN | |
◆ CallstackEntryType
Enumerator |
---|
firstEntry | |
nextEntry | |
lastEntry | |
◆ StackWalkOptions
Enumerator |
---|
RetrieveNone | |
RetrieveSymbol | |
RetrieveLine | |
RetrieveModuleInfo | |
RetrieveFileVersion | |
RetrieveVerbose | |
SymBuildPath | |
SymUseSymSrv | |
SymAll | |
OptionsAll | |
◆ StackWalker() [1/2]
StackWalker::StackWalker |
( |
int |
options = OptionsAll , |
|
|
LPCSTR |
szSymPath = NULL , |
|
|
DWORD |
dwProcessId = GetCurrentProcessId() , |
|
|
HANDLE |
hProcess = GetCurrentProcess() |
|
) |
| |
◆ StackWalker() [2/2]
StackWalker::StackWalker |
( |
DWORD |
dwProcessId, |
|
|
HANDLE |
hProcess |
|
) |
| |
◆ ~StackWalker()
StackWalker::~StackWalker |
( |
| ) |
|
|
virtual |
◆ LoadModules()
BOOL StackWalker::LoadModules |
( |
| ) |
|
◆ myReadProcMem()
BOOL __stdcall StackWalker::myReadProcMem |
( |
HANDLE |
hProcess, |
|
|
DWORD64 |
qwBaseAddress, |
|
|
PVOID |
lpBuffer, |
|
|
DWORD |
nSize, |
|
|
LPDWORD |
lpNumberOfBytesRead |
|
) |
| |
|
staticprotected |
◆ OnCallstackEntry()
◆ OnDbgHelpErr()
void StackWalker::OnDbgHelpErr |
( |
LPCSTR |
szFuncName, |
|
|
DWORD |
gle, |
|
|
DWORD64 |
addr |
|
) |
| |
|
protectedvirtual |
◆ OnLoadModule()
void StackWalker::OnLoadModule |
( |
LPCSTR |
img, |
|
|
LPCSTR |
mod, |
|
|
DWORD64 |
baseAddr, |
|
|
DWORD |
size, |
|
|
DWORD |
result, |
|
|
LPCSTR |
symType, |
|
|
LPCSTR |
pdbName, |
|
|
ULONGLONG |
fileVersion |
|
) |
| |
|
protectedvirtual |
◆ OnOutput()
void StackWalker::OnOutput |
( |
LPCSTR |
szText | ) |
|
|
protectedvirtual |
◆ OnSymInit()
void StackWalker::OnSymInit |
( |
LPCSTR |
szSearchPath, |
|
|
DWORD |
symOptions, |
|
|
LPCSTR |
szUserName |
|
) |
| |
|
protectedvirtual |
◆ ShowCallstack()
BOOL StackWalker::ShowCallstack |
( |
HANDLE |
hThread = GetCurrentThread() , |
|
|
const CONTEXT * |
context = NULL , |
|
|
PReadProcessMemoryRoutine |
readMemoryFunction = NULL , |
|
|
LPVOID |
pUserData = NULL |
|
) |
| |
References StackWalkerInternal::IMAGEHLP_MODULE64_V3::BaseOfImage, StackWalker::CallstackEntry::baseOfImage, firstEntry, StackWalkerInternal::GetModuleInfo(), lastEntry, StackWalker::CallstackEntry::lineFileName, StackWalker::CallstackEntry::lineNumber, StackWalkerInternal::IMAGEHLP_MODULE64_V3::LoadedImageName, StackWalker::CallstackEntry::loadedImageName, LoadModules(), StackWalkerInternal::m_hDbhHelp, m_MaxRecursionCount, m_modulesLoaded, m_sw, StackWalkerInternal::IMAGEHLP_MODULE64_V3::ModuleName, StackWalker::CallstackEntry::moduleName, myReadProcMem(), StackWalker::CallstackEntry::name, nextEntry, StackWalker::CallstackEntry::offset, StackWalker::CallstackEntry::offsetFromLine, StackWalker::CallstackEntry::offsetFromSmybol, OnCallstackEntry(), OnDbgHelpErr(), StackWalkerInternal::pSGLFA, StackWalkerInternal::pSGSFA, StackWalkerInternal::pSW, StackWalkerInternal::pUDSN, StackWalkerInternal::IMAGEHLP_MODULE64_V3::SizeOfStruct, STACKWALK_MAX_NAMELEN, StackWalkerInternal::IMAGEHLP_MODULE64_V3::SymType, StackWalker::CallstackEntry::symTypeString, StackWalker::CallstackEntry::undFullName, and StackWalker::CallstackEntry::undName.
◆ m_dwProcessId
DWORD StackWalker::m_dwProcessId |
|
protected |
◆ m_hProcess
HANDLE StackWalker::m_hProcess |
|
protected |
◆ m_MaxRecursionCount
int StackWalker::m_MaxRecursionCount |
|
protected |
◆ m_modulesLoaded
BOOL StackWalker::m_modulesLoaded |
|
protected |
◆ m_options
int StackWalker::m_options |
|
protected |
◆ m_sw
◆ m_szSymPath
LPSTR StackWalker::m_szSymPath |
|
protected |
◆ StackWalkerInternal
friend StackWalker::StackWalkerInternal |
|
protected |
The documentation for this class was generated from the following files:
- FreeCAD/src/Base/StackWalker.h
- FreeCAD/src/Base/StackWalker.cpp