diff options
| author | Joakim Hulthe <joakim@hulthe.net> | 2024-05-02 11:54:13 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-06-25 17:21:07 +0200 |
| commit | 9dfdf2fa52422709ce3df7a50643e0abc6ade319 (patch) | |
| tree | 7d5f6366e317879c929e8ecb9fd6b2524990d368 | |
| parent | f2ca4ad61115e8a53f9f271e3ddd1c6f6314216e (diff) | |
| download | mullvadvpn-9dfdf2fa52422709ce3df7a50643e0abc6ade319.tar.xz mullvadvpn-9dfdf2fa52422709ce3df7a50643e0abc6ade319.zip | |
Print backtrace on caught fault signals (unix)
Useful for debugging nil derefs in linked Go code and whatnot.
Co-authored-by: Sebastian Holmin <sebastian.holmin@mullvad.net>
| -rw-r--r-- | mullvad-daemon/src/exception_logging/unix.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mullvad-daemon/src/exception_logging/unix.rs b/mullvad-daemon/src/exception_logging/unix.rs index 36d1f679dd..2bbbb62dad 100644 --- a/mullvad-daemon/src/exception_logging/unix.rs +++ b/mullvad-daemon/src/exception_logging/unix.rs @@ -4,6 +4,7 @@ use libc::siginfo_t; use nix::sys::signal::{sigaction, SaFlags, SigAction, SigHandler, SigSet, Signal}; use std::{ + backtrace::Backtrace, ffi::{c_int, c_void}, sync::Once, }; @@ -84,5 +85,9 @@ extern "C" fn fault_handler( }; log::error!("Caught signal {}", signal); + log::error!("Backtrace:"); + for line in format!("{}", Backtrace::force_capture()).lines() { + log::error!("{line}"); + } std::process::exit(2); } |
