#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 326 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: