From ff6da9bbec8d95bd70232ac93d589133c166053a Mon Sep 17 00:00:00 2001 From: "sijie.sun" Date: Thu, 15 Aug 2024 22:05:34 +0800 Subject: [PATCH] also setup panic handler on gui this helps collect gui crash info. --- easytier-gui/src-tauri/src/lib.rs | 8 +++++--- easytier/src/easytier-core.rs | 11 +---------- easytier/src/utils.rs | 12 ++++++++++++ 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/easytier-gui/src-tauri/src/lib.rs b/easytier-gui/src-tauri/src/lib.rs index 9a0bf57..4b3d906 100644 --- a/easytier-gui/src-tauri/src/lib.rs +++ b/easytier-gui/src-tauri/src/lib.rs @@ -19,7 +19,6 @@ use serde::{Deserialize, Serialize}; use tauri::Manager as _; - #[derive(Deserialize, Serialize, PartialEq, Debug)] enum NetworkingMethod { PublicServer, @@ -337,7 +336,6 @@ pub fn init_launch(_app_handle: &tauri::AppHandle, enable: bool) -> Result String { ) } -fn setup_panic_handler() { - std::panic::set_hook(Box::new(|info| { - let backtrace = backtrace::Backtrace::force_capture(); - println!("panic occurred: {:?}", info); - let _ = std::fs::File::create("easytier-panic.log") - .and_then(|mut f| f.write_all(format!("{:?}\n{:#?}", info, backtrace).as_bytes())); - std::process::exit(1); - })); -} - #[tracing::instrument] pub async fn async_main(cli: Cli) { let cfg: TomlConfigLoader = cli.into(); diff --git a/easytier/src/utils.rs b/easytier/src/utils.rs index cce5952..5f4c214 100644 --- a/easytier/src/utils.rs +++ b/easytier/src/utils.rs @@ -239,6 +239,18 @@ pub fn utf8_or_gbk_to_string(s: &[u8]) -> String { } } +pub fn setup_panic_handler() { + use std::backtrace; + use std::io::Write; + std::panic::set_hook(Box::new(|info| { + let backtrace = backtrace::Backtrace::force_capture(); + println!("panic occurred: {:?}", info); + let _ = std::fs::File::create("easytier-panic.log") + .and_then(|mut f| f.write_all(format!("{:?}\n{:#?}", info, backtrace).as_bytes())); + std::process::exit(1); + })); +} + #[cfg(test)] mod tests { use crate::common::config::{self};