Add overloads to dump_stacktrace

Using a function while debugging helps to see where various functions are
called from.
This commit is contained in:
Markus Mäkelä
2018-08-17 17:20:35 +03:00
parent fe7a73e5c3
commit 355768c564

View File

@ -15,6 +15,7 @@
#include <cstdlib>
#include <cstring>
#include <cstdio>
#include <functional>
#ifdef HAVE_GLIBC
#include <execinfo.h>
@ -119,7 +120,7 @@ static void extract_file_and_line(const char* symbols, char* cmd, size_t size)
namespace maxbase
{
void dump_stacktrace(void (*handler)(const char* symbol, const char* command))
void dump_stacktrace(std::function<void(const char*, const char*)> handler)
{
void *addrs[128];
int count = backtrace(addrs, 128);
@ -137,6 +138,11 @@ void dump_stacktrace(void (*handler)(const char* symbol, const char* command))
}
}
void dump_stacktrace(void (*handler)(const char* symbol, const char* command))
{
dump_stacktrace([&](const char* symbol, const char* command){handler(symbol, command);});
}
}
#else