diff --git a/Utilities/Thread.cpp b/Utilities/Thread.cpp index 08dce12315..6395c32505 100644 --- a/Utilities/Thread.cpp +++ b/Utilities/Thread.cpp @@ -14,6 +14,11 @@ #include "Emu/CPU/Backends/AArch64/AArch64Signal.h" #endif +#ifdef __cpp_lib_stacktrace +#include "rpcs3_version.h" +#include +#endif + #ifdef _WIN32 #include #include @@ -2800,6 +2805,16 @@ void thread_base::exec() [[noreturn]] void thread_ctrl::emergency_exit(std::string_view reason) { + // Print stacktrace +#ifdef __cpp_lib_stacktrace + if (rpcs3::is_local_build()) + { + std::ostringstream oss; + oss << std::stacktrace::current(); + sys_log.notice("StackTrace\n\n%s\n", oss.str()); + } +#endif + if (const std::string info = dump_useful_thread_info(); !info.empty()) { sys_log.notice("\n%s", info);