diff --git a/Cargo.toml b/Cargo.toml
index 832f3e1a..64f2a2a2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -12,16 +12,16 @@ license = "MIT"
bitflags = "2.0"
byteorder = "1.3.2"
cfg-if = "1.0"
-crash-context = "0.6"
-memoffset = "0.8"
-minidump-common = "0.16.0"
+crash-context = "0.6.1"
+memoffset = "0.9"
+minidump-common = "0.17.0"
scroll = "0.11"
tempfile = "3.1.0"
thiserror = "1.0.21"
[target.'cfg(unix)'.dependencies]
libc = "0.2.74"
-goblin = "0.6"
+goblin = "0.7"
memmap2 = "0.5"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
@@ -32,7 +32,7 @@ nix = { version = "0.26", default-features = false, features = [
"user",
] }
# Used for parsing procfs info.
-procfs-core = { git = "https://github.com/eminence/procfs", rev = "591016286d195f523628eccf5cac9c923ae6ea45" }
+procfs-core = "0.16.0-RC1"
[target.'cfg(target_os = "windows")'.dependencies]
bitflags = "2.0"
@@ -44,13 +44,14 @@ mach2 = "0.4"
[dev-dependencies]
# Minidump-processor is async so we need an executor
futures = { version = "0.3", features = ["executor"] }
-minidump = "0.16.0"
+minidump = "0.17.0"
memmap2 = "0.5"
[target.'cfg(target_os = "macos")'.dev-dependencies]
# We dump symbols for the `test` executable so that we can validate that minidumps
# created by this crate can be processed by minidump-processor
dump_syms = { version = "2.0.0", default-features = false }
-minidump-processor = { version = "0.16.0", default-features = false }
+minidump-processor = { version = "0.17.0", default-features = false }
+minidump-unwind = { version = "0.17", features = ["debuginfo"] }
similar-asserts = "1.2"
uuid = "1.0"
diff --git a/src/bin/test.rs b/src/bin/test.rs
index f2dce164..24e293c7 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -109,7 +109,11 @@ mod linux {
let dumper = PtraceDumper::new(getppid().as_raw())?;
let mut mapping_count = 0;
for map in &dumper.mappings {
- if map.name == Some(path.clone().into()) {
+ if map
+ .name
+ .as_ref()
+ .map_or(false, |name| name.to_string_lossy().starts_with(&path))
+ {
mapping_count += 1;
// This mapping should encompass the entire original mapped
// range.
diff --git a/src/linux/maps_reader.rs b/src/linux/maps_reader.rs
index b0017f73..760d1fdf 100644
--- a/src/linux/maps_reader.rs
+++ b/src/linux/maps_reader.rs
@@ -355,7 +355,7 @@ impl MappingInfo {
#[cfg(target_pointer_width = "64")] // All addresses are 64 bit and I'm currently too lazy to adjust it to work for both
mod tests {
use super::*;
- use procfs_core::prelude::*;
+ use procfs_core::FromRead;
fn get_mappings_for(map: &str, linux_gate_loc: u64) -> Vec