Electroneum
Namespaces | Macros | Typedefs | Functions | Variables
stack_trace.cpp File Reference
#include "easylogging++/easylogging++.h"
#include <stdexcept>
#include <libunwind.h>
#include <cxxabi.h>
#include <dlfcn.h>
#include <boost/algorithm/string.hpp>
#include "common/stack_trace.h"
#include "misc_log_ex.h"
Include dependency graph for stack_trace.cpp:

Namespaces

 anonymous_namespace{stack_trace.cpp}
 
 tools
 Various Tools.
 

Macros

#define USE_UNWIND
 
#define UNW_LOCAL_ONLY
 
#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "stacktrace"
 
#define ST_LOG(x)
 
#define CXA_THROW_INFO_T   void
 
#define CXA_THROW   __cxa_throw
 

Typedefs

typedef void() cxa_throw_t(void *ex, CXA_THROW_INFO_T *info, void(*dest) (void *))
 

Functions

 __attribute__ ((noreturn)) void CXA_THROW(void *ex
 
void tools::set_stack_trace_log (const std::string &log)
 
void tools::log_stack_trace (const char *msg)
 

Variables

CXA_THROW_INFO_Tinfo
 
CXA_THROW_INFO_T void(* dest )(void *))
 
std::string anonymous_namespace{stack_trace.cpp}::stack_trace_log
 

Macro Definition Documentation

◆ CXA_THROW

#define CXA_THROW   __cxa_throw

◆ CXA_THROW_INFO_T

#define CXA_THROW_INFO_T   void

◆ ELECTRONEUM_DEFAULT_LOG_CATEGORY

#define ELECTRONEUM_DEFAULT_LOG_CATEGORY   "stacktrace"

◆ ST_LOG

#define ST_LOG (   x)
Value:
do { \
auto elpp = ELPP; \
if (elpp) { \
CINFO(el::base::Writer,el::base::DispatchAction::FileOnlyLog,ELECTRONEUM_DEFAULT_LOG_CATEGORY) << x; \
} \
else { \
std::cout << x << std::endl; \
} \
} while(0)
#define ELECTRONEUM_DEFAULT_LOG_CATEGORY
Definition: stack_trace.cpp:51

◆ UNW_LOCAL_ONLY

#define UNW_LOCAL_ONLY

◆ USE_UNWIND

#define USE_UNWIND

Typedef Documentation

◆ cxa_throw_t

typedef void() cxa_throw_t(void *ex, CXA_THROW_INFO_T *info, void(*dest)(void *))

Function Documentation

◆ __attribute__()

__attribute__ ( (noreturn)  )

Variable Documentation

◆ dest

CXA_THROW_INFO_T void(* dest) (void *)) ( void *  )

◆ info