mirror of
https://github.com/Takiiiiiiii/strato.git
synced 2025-07-17 08:46:39 +00:00
Add stack tracing to skyline::exception
Skyline's `exception` class now stores a list of all stack frames during the invocation of the exception. These can later be parsed by the exception handler to generate a human-readable stack trace. To assist with more complete stack traces, `-fno-omit-frame-pointer` is now passed on debug builds which forces the inclusion of frames on function calls.
This commit is contained in:
@ -130,6 +130,11 @@ namespace skyline::soc::host1x {
|
||||
signal::BlockSignal({SIGINT});
|
||||
state.process->Kill(false);
|
||||
}
|
||||
} catch (const exception &e) {
|
||||
Logger::ErrorNoPrefix("{}\nStack Trace:{}", e.what(), state.loader->GetStackTrace(e.frames));
|
||||
Logger::EmulationContext.Flush();
|
||||
signal::BlockSignal({SIGINT});
|
||||
state.process->Kill(false);
|
||||
} catch (const std::exception &e) {
|
||||
Logger::Error(e.what());
|
||||
Logger::EmulationContext.Flush();
|
||||
|
Reference in New Issue
Block a user