#panic #ui

panicui

用户界面恐慌所需的解决方案

1 个不稳定版本

0.1.0 2023年1月30日

#542 in GUI

自定义许可证

77KB
168

panicui

panicui icon

描述

panicui通过利用用户界面提供了一种简单的调试解决方案。

panicui允许您使用7行代码创建恐慌钩子,以打开崩溃日志窗口。

panicui UI preview

为什么使用panicui?

1. 极其轻量级

上面程序的二进制大小(未strip,带有调试符号):~1,010KB(0.98MB)

2. 快速构建时间

panicui只使用一个直接依赖项,fltk-rs

3. 跨平台兼容

panicui使用fltk进行UI,它在几乎所有平台上都有效。这包括

  • UNIX
  • Linux (X11)
  • Windows
  • MacOS X

示例用法

更多示例可在示例文件夹中找到。

#![windows_subsystem = "windows"]

use panicui::app::PanicApplication;
use panicui::style::Style;
use panicui::window::PanicWindow;
use std::backtrace::Backtrace;
use std::panic;
use std::panic::PanicInfo;

fn panic_hook(info: &PanicInfo) {
    let backtrace = Backtrace::force_capture();
    let crash_text = format!("{info}\n{backtrace}");

    let win = PanicWindow::new(Style::default(), crash_text);

    let mut app = PanicApplication::new(win);
    app.run().expect("Unable to run application.");
}

fn main() {
    panic::set_hook(Box::new(panic_hook));

    // Cause some random panic.
    Result::<(), _>::Err(5i32).unwrap();
}

依赖项

~14MB
~305K SLoC