# breakpad.rs
[](https://github.com/chosungmann/breakpad.rs/actions/workflows/continuous_integration.yaml)
`breakpad.rs` is a Rust crate that enables the use of [Breakpad](https://chromium.googlesource.com/breakpad/breakpad) in Rust applications. When a crash occurs, it generates a minidump and notifies related information through a designated delegate.
## Example
```rust
struct Delegate;
impl breakpad_rs::ExceptionHandlerDelegate for Delegate {
fn did_write_minidump(&self, working_path: String, minidump_id: String) {
log::debug!("[did_write_minidump] working_path={working_path} minidump_id={minidump_id}");
}
fn get_working_path(&self) -> String {
log::debug!("[get_working_path] return=.");
String::from(".")
}
fn should_write_minidump(&self) -> bool {
log::debug!("[should_write_minidump] return=true");
true
}
}
fn main() {
env_logger::init();
let _breakpad = breakpad_rs::Breakpad::new(Some(Box::new(Delegate)));
unsafe {
let null: *mut u8 = std::ptr::null_mut();
*null = 42;
}
}
```
## References
* https://chromium.googlesource.com/breakpad/breakpad/
* https://chromium.googlesource.com/breakpad/breakpad/+/refs/heads/main/docs/