diff --git a/Cargo.lock b/Cargo.lock index e5aa4d63e2b1df09c98f677a0041b057b2c891da..2b5cfff38787ce93619a904b04b38317cea2194b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5800,6 +5800,15 @@ dependencies = [ "libc", ] +[[package]] +name = "error-graph" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b920e777967421aa5f9bf34f842c0ab6ba19b3bdb4a082946093860f5858879" +dependencies = [ + "serde", +] + [[package]] name = "etagere" version = "0.2.15" @@ -6169,6 +6178,12 @@ dependencies = [ "zed_actions", ] +[[package]] +name = "failspot" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c942e64b20ecd39933d5ff938ca4fdb6ef0d298cc3855b231179a5ef0b24948d" + [[package]] name = "fallible-iterator" version = "0.3.0" @@ -7553,9 +7568,9 @@ dependencies = [ [[package]] name = "goblin" -version = "0.8.2" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b363a30c165f666402fe6a3024d3bec7ebc898f96a4a23bd1c99f8dbf3f4f47" +checksum = "daa0a64d21a7eb230583b4c5f4e23b7e4e57974f96620f42a7e75e08ae66d745" dependencies = [ "log", "plain", @@ -9685,9 +9700,9 @@ checksum = "7a79a3332a6609480d7d0c9eab957bca6b455b91bb84e66d19f5ff66294b85b8" [[package]] name = "libc" -version = "0.2.177" +version = "0.2.182" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" +checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" [[package]] name = "libdbus-sys" @@ -10549,9 +10564,9 @@ dependencies = [ [[package]] name = "minidump-common" -version = "0.21.2" +version = "0.26.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c4d14bcca0fd3ed165a03000480aaa364c6860c34e900cb2dafdf3b95340e77" +checksum = "2e16d10087ae9e375bad7a40e8ef5504bc08e808ccc6019067ff9de42a84570f" dependencies = [ "bitflags 2.10.0", "debugid", @@ -10564,14 +10579,16 @@ dependencies = [ [[package]] name = "minidump-writer" -version = "0.8.9" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abcd9c8a1e6e1e9d56ce3627851f39a17ea83e17c96bc510f29d7e43d78a7d" +checksum = "0e1fc14d6ded915b8e850801465e7096f77ed60bf87e4e85878d463720d9dc4d" dependencies = [ "bitflags 2.10.0", "byteorder", "cfg-if", "crash-context", + "error-graph", + "failspot", "goblin", "libc", "log", @@ -10579,18 +10596,20 @@ dependencies = [ "memmap2", "memoffset", "minidump-common", - "nix 0.28.0", + "nix 0.29.0", "procfs-core", "scroll", + "serde", + "serde_json", "tempfile", - "thiserror 1.0.69", + "thiserror 2.0.17", ] [[package]] name = "minidumper" -version = "0.8.3" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b4ebc9d1f8847ec1d078f78b35ed598e0ebefa1f242d5f83cd8d7f03960a7d1" +checksum = "10d9254e42a48098d045472a5c0cb892007a42e25342eddbf2642f6978bf381a" dependencies = [ "cfg-if", "crash-context", @@ -10600,7 +10619,7 @@ dependencies = [ "parking_lot", "polling", "scroll", - "thiserror 1.0.69", + "thiserror 2.0.17", "uds", ] @@ -13087,12 +13106,13 @@ dependencies = [ [[package]] name = "procfs-core" -version = "0.16.0" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d3554923a69f4ce04c4a754260c338f505ce22642d3830e049a399fc2059a29" +checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec" dependencies = [ "bitflags 2.10.0", "hex", + "serde", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index 1d0f29086b45029e4d9dbc3fa9ffd9dbb6135a6e..17dadab934b3066a352f28105814c8a7bc5988b1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -596,7 +596,7 @@ lsp-types = { git = "https://github.com/zed-industries/lsp-types", rev = "a4f410 mach2 = "0.5" markup5ever_rcdom = "0.3.0" metal = "0.33" -minidumper = "0.8" +minidumper = "0.9" moka = { version = "0.12.10", features = ["sync"] } naga = { version = "28.0", features = ["wgsl-in"] } nanoid = "0.4" diff --git a/crates/crashes/src/crashes.rs b/crates/crashes/src/crashes.rs index 0c848d759cd444f3eb6e2a9838d3005254a25b19..60af963ee5520addedcfe9abdf41941e77922867 100644 --- a/crates/crashes/src/crashes.rs +++ b/crates/crashes/src/crashes.rs @@ -1,7 +1,7 @@ use crash_handler::{CrashEventResult, CrashHandler}; use futures::future::BoxFuture; use log::info; -use minidumper::{Client, LoopAction, MinidumpBinary}; +use minidumper::{Client, LoopAction, MinidumpBinary, Server, SocketName}; use parking_lot::Mutex; use release_channel::{RELEASE_CHANNEL, ReleaseChannel}; use serde::{Deserialize, Serialize}; @@ -128,7 +128,7 @@ async fn connect_and_keepalive(crash_init: InitCrashHandler, handler: CrashHandl let retry_frequency = Duration::from_millis(100); let mut maybe_client = None; while maybe_client.is_none() { - if let Ok(client) = Client::with_name(socket_name.as_path()) { + if let Ok(client) = Client::with_name(SocketName::Path(&socket_name)) { maybe_client = Some(client); info!("connected to crash handler process after {elapsed:?}"); break; @@ -446,7 +446,7 @@ fn spawn_crash_handler_windows(exe: &Path, socket_name: &Path) { } pub fn crash_server(socket: &Path) { - let Ok(mut server) = minidumper::Server::with_name(socket) else { + let Ok(mut server) = Server::with_name(SocketName::Path(socket)) else { log::info!("Couldn't create socket, there may already be a running crash server"); return; };