4个版本

0.2.2 2024年3月29日
0.2.1 2023年9月21日
0.2.0 2023年7月1日
0.1.0 2022年10月23日

#143 in 操作系统

Download history 418/week @ 2024-05-02 358/week @ 2024-05-09 488/week @ 2024-05-16 529/week @ 2024-05-23 578/week @ 2024-05-30 470/week @ 2024-06-06 557/week @ 2024-06-13 699/week @ 2024-06-20 400/week @ 2024-06-27 447/week @ 2024-07-04 392/week @ 2024-07-11 612/week @ 2024-07-18 896/week @ 2024-07-25 819/week @ 2024-08-01 775/week @ 2024-08-08 552/week @ 2024-08-15

每月 3,182 次下载
2 个crate中使用 (通过 sentry-rust-minidump)

MIT/Apache

14KB
284 代码行

minidumper-child

Master branch integration test status

基本上是将 minidumper 中的代码从 diskwrite示例 中提取出来,并以可重用的形式包装起来,并附带一些集成测试。这封装了 minidumpercrash-handler crate以从单独的崩溃报告进程中捕获和发送minidump。

它再次启动当前可执行文件,并传递一个参数使其以崩溃报告模式启动。在此模式下,它等待主应用程序进程的minidump通知,并将minidump文件传递给用户定义的闭包。

[dependencies]
minidumper-child = "0.1"
use minidumper_child::MinidumperChild;

fn main() {
    // Everything before here runs in both app and crash reporter processes
    let _guard = MinidumperChild::new()
        .on_minidump(|buffer: Vec<u8>, path: &Path| {
            // Do something with the minidump file here
        })
        .spawn();
    // Everything after here will only run in the app process

    App::run();

    // This will cause on_minidump to be called in the crash reporter process 
    #[allow(deref_nullptr)]
    unsafe {
        *std::ptr::null_mut() = true;
    }
}

依赖关系

~5–15MB
~205K SLoC