mirror of
https://github.com/pocoproject/poco.git
synced 2025-12-31 23:50:56 +01:00
* chore(Trace): add dev env settings * add(Trace): init add Poco::trace and libbacktrace files * feat(Exception): generate stack trace if enabled at compile time * chore(DNSSD): remove binaries from git * fix(Trace): build * chore(ci): exclude exception text tests for trace build; add debug test script params * chore(build): mac (dl) * chore(cmake): Changes to build Trace with CMake. * chore(cmake): Changes to build Trace on Windows * chore(cmake): Improvements to include trace sample. * chore(cmake): Fixes to properly build/link Trace on Linux * chore(cmake): add_definitions --> add_compile_definitions * chore(cmake): Build Trace as static and don't export it. * chore(make): Link Trace with built-in libbacktrace on Linux * chore(Trace): remove unnecessary sources for libbacktrace. * chore(github): enable trace on a few github checks * chore(cmake): Build Trace with clang++ on Linux. * chore(cmake): Properly set POCO_ENABLE_TRACE globally when needed. * fix(cmake): Trace: corrected include for clang on Linux --------- Co-authored-by: Matej Kenda <matejken@gmail.com>
26 lines
549 B
C++
26 lines
549 B
C++
#ifdef CPPTRACE_DEMANGLE_WITH_WINAPI
|
|
|
|
#include "demangle/demangle.hpp"
|
|
|
|
#include <string>
|
|
|
|
#include <windows.h>
|
|
#include <dbghelp.h>
|
|
|
|
namespace cpptrace {
|
|
namespace detail {
|
|
std::string demangle(const std::string& name) {
|
|
char buffer[500];
|
|
auto ret = UnDecorateSymbolName(name.c_str(), buffer, sizeof(buffer) - 1, 0);
|
|
if(ret == 0) {
|
|
return name;
|
|
} else {
|
|
buffer[ret] = 0; // just in case, ms' docs unclear if null terminator inserted
|
|
return buffer;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#endif
|