MVault 1.0.0
Simple c++ database
Loading...
Searching...
No Matches
BackTrace.h
1#pragma once
2
3#ifndef _WIN32
4#include <link.h>
5#include <stdio.h>
6#include <dlfcn.h>
7#include <stdlib.h>
8#include <unistd.h>
9
10#ifndef NO_BACKTRACE_SUPPORT
11#include <execinfo.h>
12#endif
13#endif
14
15#include <vector>
16#include <cstdint>
17#include <sstream>
18#include <iostream>
19#include <typeindex>
20
21
22#define TRACE_MAX 1024
23
24#ifndef NDEBUG
25#define DBG_LOG_ENTER() TraceLogger LocalTraceLoggerMacro(__FUNCTION__);
26#else
27#define DBG_LOG_ENTER()
28#endif
29
30namespace mvlt
31{
41 enum class BackTraceFormat : std::uint8_t
42 {
43 Compact,
44 None
45 };
46
49
55 void SetBackTraceFormat(const BackTraceFormat& traceFormat) noexcept;
56
58 void PrintBackTrace() noexcept;
59
62 {
63 private:
64 // Function name
65 std::string FuncName;
66 public:
68 TraceLogger() noexcept = delete;
69
75 TraceLogger(const TraceLogger& other) noexcept = delete;
76
82 TraceLogger(TraceLogger&& other) noexcept = delete;
83
89 explicit TraceLogger(const std::string& funcName) noexcept;
90
97 TraceLogger& operator=(const TraceLogger& other) noexcept = delete;
98
105 TraceLogger& operator=(TraceLogger&& other) noexcept = delete;
106
107
109 ~TraceLogger() noexcept;
110 };
111
112
114}
A class for logging inputs and outputs from functions.
Definition BackTrace.h:62
TraceLogger() noexcept=delete
Default constructor.
void SetBackTraceFormat(const BackTraceFormat &traceFormat) noexcept
A function for setting the format of a debug message.
Definition BackTrace.cpp:10
BackTraceFormat TraceFormat
Variable to store backtrace format.
Definition BackTrace.cpp:8
void PrintBackTrace() noexcept
Backtrace printing function.
Definition BackTrace.cpp:17
BackTraceFormat
Debug backtrace format.
Definition BackTrace.h:42
@ None
None debug backtrace.
@ Compact
Function with error.