1
0
mirror of https://github.com/Zygo/bees.git synced 2025-05-17 13:25:45 +02:00

tracer: annotate both ends of the stack trace

Add a matching "--- BEGIN TRACE..." line to complement the "---  END
TRACE..." line.

Signed-off-by: Zygo Blaxell <bees@furryterror.org>
This commit is contained in:
Zygo Blaxell 2021-06-02 00:13:48 -04:00
parent b083003cf7
commit 1fd26a03b2
2 changed files with 7 additions and 0 deletions

View File

@ -42,11 +42,16 @@ do_cmd_help(char *argv[])
// tracing ---------------------------------------- // tracing ----------------------------------------
thread_local BeesTracer *BeesTracer::tl_next_tracer = nullptr; thread_local BeesTracer *BeesTracer::tl_next_tracer = nullptr;
thread_local bool BeesTracer::tl_first = true;
thread_local bool BeesTracer::tl_silent = false; thread_local bool BeesTracer::tl_silent = false;
BeesTracer::~BeesTracer() BeesTracer::~BeesTracer()
{ {
if (!tl_silent && current_exception()) { if (!tl_silent && current_exception()) {
if (tl_first) {
BEESLOGNOTICE("--- BEGIN TRACE --- exception ---");
tl_first = false;
}
try { try {
m_func(); m_func();
} catch (exception &e) { } catch (exception &e) {
@ -61,6 +66,7 @@ BeesTracer::~BeesTracer()
tl_next_tracer = m_next_tracer; tl_next_tracer = m_next_tracer;
if (!m_next_tracer) { if (!m_next_tracer) {
tl_silent = false; tl_silent = false;
tl_first = true;
} }
} }

View File

@ -197,6 +197,7 @@ class BeesTracer {
thread_local static BeesTracer *tl_next_tracer; thread_local static BeesTracer *tl_next_tracer;
thread_local static bool tl_silent; thread_local static bool tl_silent;
thread_local static bool tl_first;
public: public:
BeesTracer(function<void()> f, bool silent = false); BeesTracer(function<void()> f, bool silent = false);
~BeesTracer(); ~BeesTracer();