TrinityCore
Loading...
Searching...
No Matches
Errors.cpp File Reference

This file contains definitions of functions used for reporting critical application errors. More...

#include "Errors.h"
#include "StringFormat.h"
#include <thread>
#include <cstdarg>
#include <cstdio>
#include <cstring>
#include <Windows.h>
#include <intrin.h>
+ Include dependency graph for Errors.cpp:

Go to the source code of this file.

Namespaces

namespace  Trinity
 

Macros

#define Unreachable()   __builtin_unreachable()
 
#define GetReturnAddress()   __builtin_return_address(0)
 
#define Crash(message)
 

Functions

void Trinity::Assert (char const *file, int line, char const *function, char const *message, std::string debugInfo) noexcept
 
void Trinity::Assert (char const *file, int line, char const *function, char const *message, std::string debugInfo, char const *format,...) noexcept
 
void Trinity::Fatal (char const *file, int line, char const *function, char const *message,...) noexcept
 
void Trinity::Error (char const *file, int line, char const *function, char const *message) noexcept
 
void Trinity::Warning (char const *file, int line, char const *function, char const *message) noexcept
 
void Trinity::Abort (char const *file, int line, char const *function) noexcept
 
void Trinity::Abort (char const *file, int line, char const *function, char const *message,...) noexcept
 
void Trinity::AbortHandler (int sigval) noexcept
 
std::string GetDebugInfo ()
 

Detailed Description

This file contains definitions of functions used for reporting critical application errors.

It is very important that (std::)abort is NEVER called in place of *((volatile int*)nullptr) = 0; Calling abort() on Windows does not invoke unhandled exception filters - a mechanism used by WheatyExceptionReport to log crashes. exit(1) calls here are for static analysis tools to indicate that calling functions defined in this file terminates the application.

Definition in file Errors.cpp.

Macro Definition Documentation

◆ Crash

#define Crash (   message)
Value:
ULONG_PTR execeptionArgs[] = { reinterpret_cast<ULONG_PTR>(strdup(message)), reinterpret_cast<ULONG_PTR>(GetReturnAddress()) }; \
RaiseException(EXCEPTION_ASSERTION_FAILURE, 0, 2, execeptionArgs); \
Unreachable()
#define GetReturnAddress()
Definition Errors.cpp:41
#define EXCEPTION_ASSERTION_FAILURE
Definition Errors.h:56

Definition at line 47 of file Errors.cpp.

◆ GetReturnAddress

#define GetReturnAddress ( )    __builtin_return_address(0)

Definition at line 41 of file Errors.cpp.

◆ Unreachable

#define Unreachable ( )    __builtin_unreachable()

Definition at line 40 of file Errors.cpp.

Function Documentation

◆ GetDebugInfo()

std::string GetDebugInfo ( )

Definition at line 172 of file Errors.cpp.

Referenced by Trinity::Impl::AssertNotNull(), and SmartScript::ProcessEventsFor().