TrinityCore
WheatyExceptionReport.h File Reference
#include "Optional.h"
#include <windows.h>
#include <winnt.h>
#include <winternl.h>
#include <dbghelp.h>
#include <compare>
#include <set>
#include <cstdlib>
#include <cstdio>
#include <stack>
#include <mutex>
+ 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 _NO_CVCONST_H
 
#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
 

Typedefs

typedef std::set< SymbolPairSymbolPairs
 

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 , btStdString = 101
}
 
enum  DataKind {
  DataIsUnknown , DataIsLocal , DataIsStaticLocal , DataIsParam ,
  DataIsObjectPtr , DataIsFileStatic , DataIsGlobal , DataIsMember ,
  DataIsStaticMember , DataIsConstant
}
 
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 []
 
WheatyExceptionReport g_WheatyExceptionReport
 

Macro Definition Documentation

◆ _NO_CVCONST_H

#define _NO_CVCONST_H

Definition at line 4 of file WheatyExceptionReport.h.

◆ WER_LARGE_BUFFER_SIZE

#define WER_LARGE_BUFFER_SIZE   WER_SMALL_BUFFER_SIZE * 16

Definition at line 21 of file WheatyExceptionReport.h.

◆ WER_MAX_ARRAY_ELEMENTS_COUNT

#define WER_MAX_ARRAY_ELEMENTS_COUNT   10

Definition at line 18 of file WheatyExceptionReport.h.

◆ WER_MAX_NESTING_LEVEL

#define WER_MAX_NESTING_LEVEL   4

Definition at line 19 of file WheatyExceptionReport.h.

◆ WER_SMALL_BUFFER_SIZE

#define WER_SMALL_BUFFER_SIZE   1024

Definition at line 20 of file WheatyExceptionReport.h.

Typedef Documentation

◆ SymbolPairs

typedef std::set<SymbolPair> SymbolPairs

Definition at line 303 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 
btStdString 

Definition at line 23 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 62 of file WheatyExceptionReport.h.

◆ DataKind

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

Definition at line 48 of file WheatyExceptionReport.h.

Variable Documentation

◆ g_WheatyExceptionReport

WheatyExceptionReport g_WheatyExceptionReport
extern

Definition at line 72 of file WheatyExceptionReport.cpp.

◆ rgBaseType

char const* const rgBaseType[]

Definition at line 253 of file WheatyExceptionReport.h.