mirror of
https://mirror.suhoan.cn/https://github.com/EasyTier/EasyTier.git
synced 2025-12-12 20:57:26 +08:00
also setup panic handler on gui
this helps collect gui crash info.
This commit is contained in:
@@ -19,7 +19,6 @@ use serde::{Deserialize, Serialize};
|
|||||||
|
|
||||||
use tauri::Manager as _;
|
use tauri::Manager as _;
|
||||||
|
|
||||||
|
|
||||||
#[derive(Deserialize, Serialize, PartialEq, Debug)]
|
#[derive(Deserialize, Serialize, PartialEq, Debug)]
|
||||||
enum NetworkingMethod {
|
enum NetworkingMethod {
|
||||||
PublicServer,
|
PublicServer,
|
||||||
@@ -337,7 +336,6 @@ pub fn init_launch(_app_handle: &tauri::AppHandle, enable: bool) -> Result<bool,
|
|||||||
Ok(enabled)
|
Ok(enabled)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
#[cfg_attr(mobile, tauri::mobile_entry_point)]
|
||||||
pub fn run() {
|
pub fn run() {
|
||||||
#[cfg(not(target_os = "android"))]
|
#[cfg(not(target_os = "android"))]
|
||||||
@@ -345,6 +343,10 @@ pub fn run() {
|
|||||||
use std::process;
|
use std::process;
|
||||||
process::exit(0);
|
process::exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(not(target_os = "android"))]
|
||||||
|
utils::setup_panic_handler();
|
||||||
|
|
||||||
tauri::Builder::default()
|
tauri::Builder::default()
|
||||||
.plugin(tauri_plugin_os::init())
|
.plugin(tauri_plugin_os::init())
|
||||||
.plugin(tauri_plugin_clipboard_manager::init())
|
.plugin(tauri_plugin_clipboard_manager::init())
|
||||||
@@ -382,7 +384,7 @@ pub fn run() {
|
|||||||
toggle_window_visibility(app);
|
toggle_window_visibility(app);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.icon(tauri::image::Image::from_bytes(include_bytes!(
|
.icon(tauri::image::Image::from_bytes(include_bytes!(
|
||||||
"../icons/icon.png"
|
"../icons/icon.png"
|
||||||
))?)
|
))?)
|
||||||
.icon_as_template(false)
|
.icon_as_template(false)
|
||||||
|
|||||||
@@ -33,6 +33,7 @@ use common::config::{
|
|||||||
};
|
};
|
||||||
use instance::instance::Instance;
|
use instance::instance::Instance;
|
||||||
use tokio::net::TcpSocket;
|
use tokio::net::TcpSocket;
|
||||||
|
use utils::setup_panic_handler;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
common::{
|
common::{
|
||||||
@@ -533,16 +534,6 @@ fn peer_conn_info_to_string(p: crate::rpc::PeerConnInfo) -> 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]
|
#[tracing::instrument]
|
||||||
pub async fn async_main(cli: Cli) {
|
pub async fn async_main(cli: Cli) {
|
||||||
let cfg: TomlConfigLoader = cli.into();
|
let cfg: TomlConfigLoader = cli.into();
|
||||||
|
|||||||
@@ -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)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use crate::common::config::{self};
|
use crate::common::config::{self};
|
||||||
|
|||||||
Reference in New Issue
Block a user