В C++23 стек вызовов можно получить в несколько строк кода с помощью
std::stacktrace::current()Это избавляет от необходимости писать костыли под разные ОС и сильно упрощает сбор логов или написание кастомных систем краш-репортов
#include <print>
#include <stacktrace>
auto printStacktrace() -> void
{
const auto tr = std::stacktrace::current();
for (const auto& e : tr)
{
std::print("Func: {} ", e.description());
std::print("File: {} ", e.source_file());
std::println("Line: {}", e.source_line());
}
}
auto someFunc() -> void
{
printStacktrace();
}
auto main() -> int
{
someFunc();
return EXIT_SUCCESS;
}
#stacktrace #code #cpp #gamedev #lifeexe #lifeexecode
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍18❤17🦄7🔥1 1