#sentry #minidump #crash #process #capture #reporter #applications

sentry-rust-minidump

捕获原生崩溃作为最小转储并发送到Sentry

19个版本

0.8.0 2024年6月29日
0.7.0 2024年2月25日
0.6.5 2024年1月28日
0.6.4 2023年7月12日
0.1.3 2022年7月22日

#148调试

Download history 357/week @ 2024-05-01 369/week @ 2024-05-08 426/week @ 2024-05-15 449/week @ 2024-05-22 615/week @ 2024-05-29 440/week @ 2024-06-05 568/week @ 2024-06-12 687/week @ 2024-06-19 674/week @ 2024-06-26 439/week @ 2024-07-03 412/week @ 2024-07-10 464/week @ 2024-07-17 555/week @ 2024-07-24 583/week @ 2024-07-31 543/week @ 2024-08-07 547/week @ 2024-08-14

2,318 每月下载量
用于 sentry-tauri

MIT/Apache

18KB
91

rust-rust-minidump-sentry

Master branch integration test status

使用 minidumper-child 包来捕获来自单独进程的最小转储,并通过Sentry Rust SDK将它们作为附件发送到Sentry。

sentry_rust_minidump::init 以崩溃报告模式启动当前的可执行文件,该模式等待主应用进程的崩溃转储通知,并处理将崩溃转储文件作为附件写入和发送到Sentry。

在主进程和崩溃报告进程中都会调用 sentry_rust_minidump::init 之前的所有内容,并应配置和启动Sentry。只有主进程会调用 sentry_rust_minidump::init 之后的代码来运行你的应用程序代码。

[dependencies]
sentry = "0.34"
sentry-rust-minidump = "0.8"
fn main() {
    let client = sentry::init("__YOUR_DSN__");

    // Everything before here runs in both app and crash reporter processes
    let _guard = sentry_rust_minidump::init(&client);
    // Everything after here runs in only the app process

    App::run();

    // This will cause a minidump to be sent to Sentry 
    #[allow(deref_nullptr)]
    unsafe {
        *std::ptr::null_mut() = true;
    }
}

ipc 功能

默认情况下,没有从应用进程到崩溃报告进程的范围同步。这意味着原生崩溃事件将缺少在应用中添加到范围中的面包屑、用户、标签或额外内容。

当启用 ipc 功能时,你可以将范围更新发送到崩溃报告进程

fn main() {
    let client = sentry::init("__YOUR_DSN__");

    // Everything before here runs in both app and crash reporter processes
    let crash_reporter = sentry_rust_minidump::init(&client).expect("crash reported didn't start");
    // Everything after here runs in only the app process

    crash_reporter.add_breadcrumb(...);
    crash_reporter.set_user(...);
    crash_reporter.set_extra(...);
    crash_reporter.set_tag(...);

    // Don't drop crash_reporter or the reporter process will close!
}

依赖关系

~8–19MB
~298K SLoC