4#include "Stroika/Foundation/StroikaPreComp.h"
9#if defined(__GNUC__) && defined(__GLIBCXX__)
11#elif qStroika_Foundation_Common_Platform_Windows
23#if qStroika_Foundation_Common_Platform_Windows
26#pragma comment(lib, "Dbghelp.lib")
36#if defined(__GNUC__) && defined(__GLIBCXX__)
38 char* realname = abi::__cxa_demangle (originalName.
AsNarrowSDKString (Characters::eIgnoreErrors).c_str (), 0, 0, &status);
39 [[maybe_unused]]
auto&& cleanup = Execution::Finally ([&realname] ()
noexcept {
40 if (realname !=
nullptr) {
47#elif qStroika_Foundation_Common_Platform_Windows
54 lock_guard critSec{sMutex_};
55 char resultBuf[10 * 1024];
56 if (::UnDecorateSymbolName (originalName.
AsNarrowSDKString (Characters::eIgnoreErrors).c_str (), resultBuf, sizeof (resultBuf), UNDNAME_COMPLETE) != 0) {
String is like std::u32string, except it is much easier to use, often much more space efficient,...
nonvirtual string AsNarrowSDKString() const
static String FromNarrowSDKString(const char *from)