TrinityCore
Loading...
Searching...
No Matches
WheatyExceptionReport.h File Reference
#include "Define.h"
#include "Optional.h"
#include <Windows.h>
#include <dbghelp.h>
#include <winnt.h>
#include <winternl.h>
#include <compare>
#include <set>
#include <stack>
#include <string>
#include <cstdio>
#include <cstdlib>
+ Include dependency graph for WheatyExceptionReport.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  SymbolPair
 
struct  SymbolDetail
 
class  WheatyExceptionReport
 
struct  WheatyExceptionReport::EnumerateSymbolsCallbackContext
 

Macros

#define WER_MAX_ARRAY_ELEMENTS_COUNT   10
 
#define WER_MAX_NESTING_LEVEL   4
 
#define WER_SMALL_BUFFER_SIZE   1024
 
#define WER_LARGE_BUFFER_SIZE   WER_SMALL_BUFFER_SIZE * 16
 
#define INIT_CRASH_HANDLER()
 

Typedefs

typedef std::set< SymbolPair > SymbolPairs
 

Enumerations

enum  BasicType {
  btNoType = 0 , btVoid = 1 , btChar = 2 , btWChar = 3 ,
  btInt = 6 , btUInt = 7 , btFloat = 8 , btBCD = 9 ,
  btBool = 10 , btLong = 13 , btULong = 14 , btCurrency = 25 ,
  btDate = 26 , btVariant = 27 , btComplex = 28 , btBit = 29 ,
  btBSTR = 30 , btHresult = 31 , btChar16 = 32 , btChar32 = 33 ,
  btChar8 = 34 , btVector = 35 , btStdString = 101
}
 
enum  DataKind {
  DataIsUnknown , DataIsLocal , DataIsStaticLocal , DataIsParam ,
  DataIsObjectPtr , DataIsFileStatic , DataIsGlobal , DataIsMember ,
  DataIsStaticMember , DataIsConstant
}
 
enum  SymTagEnum {
  SymTagNull , SymTagExe , SymTagCompiland , SymTagCompilandDetails ,
  SymTagCompilandEnv , SymTagFunction , SymTagBlock , SymTagData ,
  SymTagAnnotation , SymTagLabel , SymTagPublicSymbol , SymTagUDT ,
  SymTagEnum , SymTagFunctionType , SymTagPointerType , SymTagArrayType ,
  SymTagBaseType , SymTagTypedef , SymTagBaseClass , SymTagFriend ,
  SymTagFunctionArgType , SymTagFuncDebugStart , SymTagFuncDebugEnd , SymTagUsingNamespace ,
  SymTagVTableShape , SymTagVTable , SymTagCustom , SymTagThunk ,
  SymTagCustomType , SymTagManagedType , SymTagDimension , SymTagCallSite ,
  SymTagInlineSite , SymTagBaseInterface , SymTagVectorType , SymTagMatrixType ,
  SymTagHLSLType , SymTagCaller , SymTagCallee , SymTagExport ,
  SymTagHeapAllocationSite , SymTagCoffGroup , SymTagInlinee , SymTagTaggedUnionCase ,
  SymTagMax
}
 
enum  CpuRegister {
  CV_ALLREG_VFRAME = 30006 , CV_REG_NONE = 0 , CV_REG_AL = 1 , CV_REG_CL = 2 ,
  CV_REG_DL = 3 , CV_REG_BL = 4 , CV_REG_AH = 5 , CV_REG_CH = 6 ,
  CV_REG_DH = 7 , CV_REG_BH = 8 , CV_REG_AX = 9 , CV_REG_CX = 10 ,
  CV_REG_DX = 11 , CV_REG_BX = 12 , CV_REG_SP = 13 , CV_REG_BP = 14 ,
  CV_REG_SI = 15 , CV_REG_DI = 16 , CV_REG_EAX = 17 , CV_REG_ECX = 18 ,
  CV_REG_EDX = 19 , CV_REG_EBX = 20 , CV_REG_ESP = 21 , CV_REG_EBP = 22 ,
  CV_REG_ESI = 23 , CV_REG_EDI = 24 , CV_REG_EIP = 33 , CV_AMD64_AL = 1 ,
  CV_AMD64_CL = 2 , CV_AMD64_DL = 3 , CV_AMD64_BL = 4 , CV_AMD64_AH = 5 ,
  CV_AMD64_CH = 6 , CV_AMD64_DH = 7 , CV_AMD64_BH = 8 , CV_AMD64_AX = 9 ,
  CV_AMD64_CX = 10 , CV_AMD64_DX = 11 , CV_AMD64_BX = 12 , CV_AMD64_SP = 13 ,
  CV_AMD64_BP = 14 , CV_AMD64_SI = 15 , CV_AMD64_DI = 16 , CV_AMD64_EAX = 17 ,
  CV_AMD64_ECX = 18 , CV_AMD64_EDX = 19 , CV_AMD64_EBX = 20 , CV_AMD64_ESP = 21 ,
  CV_AMD64_EBP = 22 , CV_AMD64_ESI = 23 , CV_AMD64_EDI = 24 , CV_AMD64_RIP = 33 ,
  CV_AMD64_SIL = 324 , CV_AMD64_DIL = 325 , CV_AMD64_BPL = 326 , CV_AMD64_SPL = 327 ,
  CV_AMD64_RAX = 328 , CV_AMD64_RBX = 329 , CV_AMD64_RCX = 330 , CV_AMD64_RDX = 331 ,
  CV_AMD64_RSI = 332 , CV_AMD64_RDI = 333 , CV_AMD64_RBP = 334 , CV_AMD64_RSP = 335 ,
  CV_AMD64_R8 = 336 , CV_AMD64_R9 = 337 , CV_AMD64_R10 = 338 , CV_AMD64_R11 = 339 ,
  CV_AMD64_R12 = 340 , CV_AMD64_R13 = 341 , CV_AMD64_R14 = 342 , CV_AMD64_R15 = 343 ,
  CV_AMD64_R8B = 344 , CV_AMD64_R9B = 345 , CV_AMD64_R10B = 346 , CV_AMD64_R11B = 347 ,
  CV_AMD64_R12B = 348 , CV_AMD64_R13B = 349 , CV_AMD64_R14B = 350 , CV_AMD64_R15B = 351 ,
  CV_AMD64_R8W = 352 , CV_AMD64_R9W = 353 , CV_AMD64_R10W = 354 , CV_AMD64_R11W = 355 ,
  CV_AMD64_R12W = 356 , CV_AMD64_R13W = 357 , CV_AMD64_R14W = 358 , CV_AMD64_R15W = 359 ,
  CV_AMD64_R8D = 360 , CV_AMD64_R9D = 361 , CV_AMD64_R10D = 362 , CV_AMD64_R11D = 363 ,
  CV_AMD64_R12D = 364 , CV_AMD64_R13D = 365 , CV_AMD64_R14D = 366 , CV_AMD64_R15D = 367 ,
  CV_ARM64_NOREG = CV_REG_NONE , CV_ARM64_W0 = 10 , CV_ARM64_W1 = 11 , CV_ARM64_W2 = 12 ,
  CV_ARM64_W3 = 13 , CV_ARM64_W4 = 14 , CV_ARM64_W5 = 15 , CV_ARM64_W6 = 16 ,
  CV_ARM64_W7 = 17 , CV_ARM64_W8 = 18 , CV_ARM64_W9 = 19 , CV_ARM64_W10 = 20 ,
  CV_ARM64_W11 = 21 , CV_ARM64_W12 = 22 , CV_ARM64_W13 = 23 , CV_ARM64_W14 = 24 ,
  CV_ARM64_W15 = 25 , CV_ARM64_W16 = 26 , CV_ARM64_W17 = 27 , CV_ARM64_W18 = 28 ,
  CV_ARM64_W19 = 29 , CV_ARM64_W20 = 30 , CV_ARM64_W21 = 31 , CV_ARM64_W22 = 32 ,
  CV_ARM64_W23 = 33 , CV_ARM64_W24 = 34 , CV_ARM64_W25 = 35 , CV_ARM64_W26 = 36 ,
  CV_ARM64_W27 = 37 , CV_ARM64_W28 = 38 , CV_ARM64_W29 = 39 , CV_ARM64_W30 = 40 ,
  CV_ARM64_WZR = 41 , CV_ARM64_X0 = 50 , CV_ARM64_X1 = 51 , CV_ARM64_X2 = 52 ,
  CV_ARM64_X3 = 53 , CV_ARM64_X4 = 54 , CV_ARM64_X5 = 55 , CV_ARM64_X6 = 56 ,
  CV_ARM64_X7 = 57 , CV_ARM64_X8 = 58 , CV_ARM64_X9 = 59 , CV_ARM64_X10 = 60 ,
  CV_ARM64_X11 = 61 , CV_ARM64_X12 = 62 , CV_ARM64_X13 = 63 , CV_ARM64_X14 = 64 ,
  CV_ARM64_X15 = 65 , CV_ARM64_IP0 = 66 , CV_ARM64_IP1 = 67 , CV_ARM64_X18 = 68 ,
  CV_ARM64_X19 = 69 , CV_ARM64_X20 = 70 , CV_ARM64_X21 = 71 , CV_ARM64_X22 = 72 ,
  CV_ARM64_X23 = 73 , CV_ARM64_X24 = 74 , CV_ARM64_X25 = 75 , CV_ARM64_X26 = 76 ,
  CV_ARM64_X27 = 77 , CV_ARM64_X28 = 78 , CV_ARM64_FP = 79 , CV_ARM64_LR = 80 ,
  CV_ARM64_SP = 81 , CV_ARM64_ZR = 82
}
 

Variables

char const *const rgBaseType []
 

Macro Definition Documentation

◆ INIT_CRASH_HANDLER

#define INIT_CRASH_HANDLER ( )
Value:
__pragma(warning(push)) \
__pragma(warning(disable:4073)) /* C4073: initializers put in library initialization area */ \
__pragma(init_seg(lib)) \
WheatyExceptionReport g_WheatyExceptionReport; \
__pragma(warning(pop))

Definition at line 467 of file WheatyExceptionReport.h.

◆ WER_LARGE_BUFFER_SIZE

#define WER_LARGE_BUFFER_SIZE   WER_SMALL_BUFFER_SIZE * 16

Definition at line 20 of file WheatyExceptionReport.h.

◆ WER_MAX_ARRAY_ELEMENTS_COUNT

#define WER_MAX_ARRAY_ELEMENTS_COUNT   10

Definition at line 17 of file WheatyExceptionReport.h.

◆ WER_MAX_NESTING_LEVEL

#define WER_MAX_NESTING_LEVEL   4

Definition at line 18 of file WheatyExceptionReport.h.

◆ WER_SMALL_BUFFER_SIZE

#define WER_SMALL_BUFFER_SIZE   1024

Definition at line 19 of file WheatyExceptionReport.h.

Typedef Documentation

◆ SymbolPairs

typedef std::set<SymbolPair> SymbolPairs

Definition at line 359 of file WheatyExceptionReport.h.

Enumeration Type Documentation

◆ BasicType

enum BasicType
Enumerator
btNoType 
btVoid 
btChar 
btWChar 
btInt 
btUInt 
btFloat 
btBCD 
btBool 
btLong 
btULong 
btCurrency 
btDate 
btVariant 
btComplex 
btBit 
btBSTR 
btHresult 
btChar16 
btChar32 
btChar8 
btVector 
btStdString 

Definition at line 22 of file WheatyExceptionReport.h.

◆ CpuRegister

Enumerator
CV_ALLREG_VFRAME 
CV_REG_NONE 
CV_REG_AL 
CV_REG_CL 
CV_REG_DL 
CV_REG_BL 
CV_REG_AH 
CV_REG_CH 
CV_REG_DH 
CV_REG_BH 
CV_REG_AX 
CV_REG_CX 
CV_REG_DX 
CV_REG_BX 
CV_REG_SP 
CV_REG_BP 
CV_REG_SI 
CV_REG_DI 
CV_REG_EAX 
CV_REG_ECX 
CV_REG_EDX 
CV_REG_EBX 
CV_REG_ESP 
CV_REG_EBP 
CV_REG_ESI 
CV_REG_EDI 
CV_REG_EIP 
CV_AMD64_AL 
CV_AMD64_CL 
CV_AMD64_DL 
CV_AMD64_BL 
CV_AMD64_AH 
CV_AMD64_CH 
CV_AMD64_DH 
CV_AMD64_BH 
CV_AMD64_AX 
CV_AMD64_CX 
CV_AMD64_DX 
CV_AMD64_BX 
CV_AMD64_SP 
CV_AMD64_BP 
CV_AMD64_SI 
CV_AMD64_DI 
CV_AMD64_EAX 
CV_AMD64_ECX 
CV_AMD64_EDX 
CV_AMD64_EBX 
CV_AMD64_ESP 
CV_AMD64_EBP 
CV_AMD64_ESI 
CV_AMD64_EDI 
CV_AMD64_RIP 
CV_AMD64_SIL 
CV_AMD64_DIL 
CV_AMD64_BPL 
CV_AMD64_SPL 
CV_AMD64_RAX 
CV_AMD64_RBX 
CV_AMD64_RCX 
CV_AMD64_RDX 
CV_AMD64_RSI 
CV_AMD64_RDI 
CV_AMD64_RBP 
CV_AMD64_RSP 
CV_AMD64_R8 
CV_AMD64_R9 
CV_AMD64_R10 
CV_AMD64_R11 
CV_AMD64_R12 
CV_AMD64_R13 
CV_AMD64_R14 
CV_AMD64_R15 
CV_AMD64_R8B 
CV_AMD64_R9B 
CV_AMD64_R10B 
CV_AMD64_R11B 
CV_AMD64_R12B 
CV_AMD64_R13B 
CV_AMD64_R14B 
CV_AMD64_R15B 
CV_AMD64_R8W 
CV_AMD64_R9W 
CV_AMD64_R10W 
CV_AMD64_R11W 
CV_AMD64_R12W 
CV_AMD64_R13W 
CV_AMD64_R14W 
CV_AMD64_R15W 
CV_AMD64_R8D 
CV_AMD64_R9D 
CV_AMD64_R10D 
CV_AMD64_R11D 
CV_AMD64_R12D 
CV_AMD64_R13D 
CV_AMD64_R14D 
CV_AMD64_R15D 
CV_ARM64_NOREG 
CV_ARM64_W0 
CV_ARM64_W1 
CV_ARM64_W2 
CV_ARM64_W3 
CV_ARM64_W4 
CV_ARM64_W5 
CV_ARM64_W6 
CV_ARM64_W7 
CV_ARM64_W8 
CV_ARM64_W9 
CV_ARM64_W10 
CV_ARM64_W11 
CV_ARM64_W12 
CV_ARM64_W13 
CV_ARM64_W14 
CV_ARM64_W15 
CV_ARM64_W16 
CV_ARM64_W17 
CV_ARM64_W18 
CV_ARM64_W19 
CV_ARM64_W20 
CV_ARM64_W21 
CV_ARM64_W22 
CV_ARM64_W23 
CV_ARM64_W24 
CV_ARM64_W25 
CV_ARM64_W26 
CV_ARM64_W27 
CV_ARM64_W28 
CV_ARM64_W29 
CV_ARM64_W30 
CV_ARM64_WZR 
CV_ARM64_X0 
CV_ARM64_X1 
CV_ARM64_X2 
CV_ARM64_X3 
CV_ARM64_X4 
CV_ARM64_X5 
CV_ARM64_X6 
CV_ARM64_X7 
CV_ARM64_X8 
CV_ARM64_X9 
CV_ARM64_X10 
CV_ARM64_X11 
CV_ARM64_X12 
CV_ARM64_X13 
CV_ARM64_X14 
CV_ARM64_X15 
CV_ARM64_IP0 
CV_ARM64_IP1 
CV_ARM64_X18 
CV_ARM64_X19 
CV_ARM64_X20 
CV_ARM64_X21 
CV_ARM64_X22 
CV_ARM64_X23 
CV_ARM64_X24 
CV_ARM64_X25 
CV_ARM64_X26 
CV_ARM64_X27 
CV_ARM64_X28 
CV_ARM64_FP 
CV_ARM64_LR 
CV_ARM64_SP 
CV_ARM64_ZR 

Definition at line 114 of file WheatyExceptionReport.h.

◆ DataKind

enum DataKind
Enumerator
DataIsUnknown 
DataIsLocal 
DataIsStaticLocal 
DataIsParam 
DataIsObjectPtr 
DataIsFileStatic 
DataIsGlobal 
DataIsMember 
DataIsStaticMember 
DataIsConstant 

Definition at line 51 of file WheatyExceptionReport.h.

◆ SymTagEnum

enum SymTagEnum
Enumerator
SymTagNull 
SymTagExe 
SymTagCompiland 
SymTagCompilandDetails 
SymTagCompilandEnv 
SymTagFunction 
SymTagBlock 
SymTagData 
SymTagAnnotation 
SymTagLabel 
SymTagPublicSymbol 
SymTagUDT 
SymTagEnum 
SymTagFunctionType 
SymTagPointerType 
SymTagArrayType 
SymTagBaseType 
SymTagTypedef 
SymTagBaseClass 
SymTagFriend 
SymTagFunctionArgType 
SymTagFuncDebugStart 
SymTagFuncDebugEnd 
SymTagUsingNamespace 
SymTagVTableShape 
SymTagVTable 
SymTagCustom 
SymTagThunk 
SymTagCustomType 
SymTagManagedType 
SymTagDimension 
SymTagCallSite 
SymTagInlineSite 
SymTagBaseInterface 
SymTagVectorType 
SymTagMatrixType 
SymTagHLSLType 
SymTagCaller 
SymTagCallee 
SymTagExport 
SymTagHeapAllocationSite 
SymTagCoffGroup 
SymTagInlinee 
SymTagTaggedUnionCase 
SymTagMax 

Definition at line 65 of file WheatyExceptionReport.h.

Variable Documentation

◆ rgBaseType

char const* const rgBaseType[]