oopsie_woopsie

Crates.iooopsie_woopsie
lib.rsoopsie_woopsie
version4.0.0
sourcesrc
created_at2023-06-08 14:47:47.227304
updated_at2023-09-24 09:48:29.788878
descriptionA crate to make debugging unexpected panics easier on end-user machines.
homepage
repositoryhttps://github.com/Normantas/oopsie-woopsie
max_upload_size
id885541
size10,713
(Normantas)

documentation

README

Oopsie woopsie!

A crate to make debugging unexpected panics easier both on end-user machines. Provides a panic handler which generates a helpful panic message and saves a backtrace, system information and minidump to a file. This is intended to be used only on builds that are distributed to other people.

Features

  • Displays the PanicInfo and a backtrace
  • Creates a panic log file which contains the panic message, system info, and a backtrace
  • Creates a minidump of the current process (Currently quite limited)

Usage example

fn main() {
    // Add #[cfg(not(debug_assertions))] here if you want to only enable these in release builds
    std::panic::set_hook(Box::new(|panicinfo: &std::panic::PanicInfo| {
        oopsie_woopsie::set_panic_handler(panicinfo, &oopsie_woopsie::PanicHandlerConfig{
            file_dir: Some("D:/Projects/oopsie_woopsie_test".into()),
        })
    }));

    panic!("Goodbye, world!");
}

Reminder: This crate only works for panics. It cannot debug crashes. If you need crash debugging, you need to use an out-of-process crash handler such as Breakpad or Crashpad. There is also EmbarkStudio's Crash handling utility crates.

Commit count: 5

cargo fmt