#include <WheatyExceptionReport.h>
|
typedef NTSTATUS(NTAPI * | pRtlGetVersion) (PRTL_OSVERSIONINFOW lpVersionInformation) |
|
|
static void | GenerateExceptionReport (PEXCEPTION_POINTERS pExceptionInfo) |
|
static void | PrintSystemInfo () |
|
static BOOL | _GetWindowsVersion (TCHAR *szVersion, DWORD cntMax) |
|
static BOOL | _GetWindowsVersionFromWMI (TCHAR *szVersion, DWORD cntMax) |
|
static BOOL | _GetProcessorName (TCHAR *sProcessorName, DWORD maxcount) |
|
static LPCTSTR | GetExceptionString (DWORD dwCode) |
|
static BOOL | GetLogicalAddress (PVOID addr, PTSTR szModule, DWORD len, DWORD §ion, DWORD_PTR &offset) |
|
static void | WriteStackDetails (PCONTEXT pContext, bool bWriteVariables, HANDLE pThreadHandle) |
|
static BOOL CALLBACK | EnumerateSymbolsCallback (PSYMBOL_INFO, ULONG, PVOID) |
|
static bool | FormatSymbolValue (PSYMBOL_INFO, EnumerateSymbolsCallbackContext *) |
|
static void | DumpTypeIndex (DWORD64, DWORD, DWORD_PTR, bool &, char const *, char const *, bool, bool) |
|
static void | FormatOutputValue (char *pszCurrBuffer, BasicType basicType, DWORD64 length, PVOID pAddress, size_t bufferSize, size_t countOverride=0) |
|
static BasicType | GetBasicType (DWORD typeIndex, DWORD64 modBase) |
|
static DWORD_PTR | DereferenceUnsafePointer (DWORD_PTR address) |
|
static int __cdecl | Log (const TCHAR *format,...) |
|
static bool | StoreSymbol (DWORD type, DWORD_PTR offset) |
|
static void | ClearSymbols () |
|
static Optional< DWORD_PTR > | GetIntegerRegisterValue (PCONTEXT context, ULONG registerId) |
|
static void | PushSymbolDetail () |
|
static void | PopSymbolDetail () |
|
static void | PrintSymbolDetail () |
|
Definition at line 325 of file WheatyExceptionReport.h.
◆ pRtlGetVersion
typedef NTSTATUS(NTAPI * WheatyExceptionReport::pRtlGetVersion) (PRTL_OSVERSIONINFOW lpVersionInformation) |
|
private |
◆ WheatyExceptionReport()
WheatyExceptionReport::WheatyExceptionReport |
( |
| ) |
|
◆ ~WheatyExceptionReport()
WheatyExceptionReport::~WheatyExceptionReport |
( |
| ) |
|
◆ _GetProcessorName()
BOOL WheatyExceptionReport::_GetProcessorName |
( |
TCHAR * |
sProcessorName, |
|
|
DWORD |
maxcount |
|
) |
| |
|
staticprivate |
◆ _GetWindowsVersion()
BOOL WheatyExceptionReport::_GetWindowsVersion |
( |
TCHAR * |
szVersion, |
|
|
DWORD |
cntMax |
|
) |
| |
|
staticprivate |
◆ _GetWindowsVersionFromWMI()
BOOL WheatyExceptionReport::_GetWindowsVersionFromWMI |
( |
TCHAR * |
szVersion, |
|
|
DWORD |
cntMax |
|
) |
| |
|
staticprivate |
◆ ClearSymbols()
void WheatyExceptionReport::ClearSymbols |
( |
| ) |
|
|
staticprivate |
◆ DereferenceUnsafePointer()
DWORD_PTR WheatyExceptionReport::DereferenceUnsafePointer |
( |
DWORD_PTR |
address | ) |
|
|
staticprivate |
◆ DumpTypeIndex()
void WheatyExceptionReport::DumpTypeIndex |
( |
DWORD64 |
modBase, |
|
|
DWORD |
dwTypeIndex, |
|
|
DWORD_PTR |
offset, |
|
|
bool & |
bHandled, |
|
|
char const * |
Name, |
|
|
char const * |
, |
|
|
bool |
newSymbol, |
|
|
bool |
logChildren |
|
) |
| |
|
staticprivate |
◆ EnumerateSymbolsCallback()
BOOL CALLBACK WheatyExceptionReport::EnumerateSymbolsCallback |
( |
PSYMBOL_INFO |
pSymInfo, |
|
|
ULONG |
, |
|
|
PVOID |
UserContext |
|
) |
| |
|
staticprivate |
◆ FormatOutputValue()
void WheatyExceptionReport::FormatOutputValue |
( |
char * |
pszCurrBuffer, |
|
|
BasicType |
basicType, |
|
|
DWORD64 |
length, |
|
|
PVOID |
pAddress, |
|
|
size_t |
bufferSize, |
|
|
size_t |
countOverride = 0 |
|
) |
| |
|
staticprivate |
◆ FormatSymbolValue()
◆ GenerateExceptionReport()
void WheatyExceptionReport::GenerateExceptionReport |
( |
PEXCEPTION_POINTERS |
pExceptionInfo | ) |
|
|
staticprivate |
◆ GetBasicType()
BasicType WheatyExceptionReport::GetBasicType |
( |
DWORD |
typeIndex, |
|
|
DWORD64 |
modBase |
|
) |
| |
|
staticprivate |
◆ GetExceptionString()
LPCTSTR WheatyExceptionReport::GetExceptionString |
( |
DWORD |
dwCode | ) |
|
|
staticprivate |
◆ GetIntegerRegisterValue()
Optional< DWORD_PTR > WheatyExceptionReport::GetIntegerRegisterValue |
( |
PCONTEXT |
context, |
|
|
ULONG |
registerId |
|
) |
| |
|
staticprivate |
◆ GetLogicalAddress()
BOOL WheatyExceptionReport::GetLogicalAddress |
( |
PVOID |
addr, |
|
|
PTSTR |
szModule, |
|
|
DWORD |
len, |
|
|
DWORD & |
section, |
|
|
DWORD_PTR & |
offset |
|
) |
| |
|
staticprivate |
◆ Log()
int __cdecl WheatyExceptionReport::Log |
( |
const TCHAR * |
format, |
|
|
|
... |
|
) |
| |
|
staticprivate |
◆ PopSymbolDetail()
void WheatyExceptionReport::PopSymbolDetail |
( |
| ) |
|
|
staticprivate |
◆ PrintSymbolDetail()
void WheatyExceptionReport::PrintSymbolDetail |
( |
| ) |
|
|
staticprivate |
◆ PrintSystemInfo()
void WheatyExceptionReport::PrintSystemInfo |
( |
| ) |
|
|
staticprivate |
◆ printTracesForAllThreads()
void WheatyExceptionReport::printTracesForAllThreads |
( |
bool |
bWriteVariables | ) |
|
|
static |
◆ PushSymbolDetail()
void WheatyExceptionReport::PushSymbolDetail |
( |
| ) |
|
|
staticprivate |
◆ StoreSymbol()
bool WheatyExceptionReport::StoreSymbol |
( |
DWORD |
type, |
|
|
DWORD_PTR |
offset |
|
) |
| |
|
staticprivate |
◆ WheatyCrtHandler()
void __cdecl WheatyExceptionReport::WheatyCrtHandler |
( |
wchar_t const * |
expression, |
|
|
wchar_t const * |
function, |
|
|
wchar_t const * |
file, |
|
|
unsigned int |
line, |
|
|
uintptr_t |
pReserved |
|
) |
| |
|
static |
◆ WheatyUnhandledExceptionFilter()
LONG WINAPI WheatyExceptionReport::WheatyUnhandledExceptionFilter |
( |
PEXCEPTION_POINTERS |
pExceptionInfo | ) |
|
|
static |
◆ WriteStackDetails()
void WheatyExceptionReport::WriteStackDetails |
( |
PCONTEXT |
pContext, |
|
|
bool |
bWriteVariables, |
|
|
HANDLE |
pThreadHandle |
|
) |
| |
|
staticprivate |
◆ alreadyCrashed
bool WheatyExceptionReport::alreadyCrashed |
|
staticprivate |
◆ alreadyCrashedLock
std::mutex WheatyExceptionReport::alreadyCrashedLock |
|
staticprivate |
◆ m_hDumpFile
HANDLE WheatyExceptionReport::m_hDumpFile |
|
staticprivate |
◆ m_hProcess
HANDLE WheatyExceptionReport::m_hProcess |
|
staticprivate |
◆ m_hReportFile
FILE * WheatyExceptionReport::m_hReportFile |
|
staticprivate |
◆ m_previousCrtHandler
_invalid_parameter_handler WheatyExceptionReport::m_previousCrtHandler |
|
staticprivate |
◆ m_previousFilter
LPTOP_LEVEL_EXCEPTION_FILTER WheatyExceptionReport::m_previousFilter |
|
staticprivate |
◆ m_szDumpFileName
TCHAR WheatyExceptionReport::m_szDumpFileName |
|
staticprivate |
◆ m_szLogFileName
TCHAR WheatyExceptionReport::m_szLogFileName |
|
staticprivate |
◆ RtlGetVersion
◆ symbolDetails
std::stack< SymbolDetail > WheatyExceptionReport::symbolDetails |
|
staticprivate |
◆ symbols
The documentation for this class was generated from the following files: