From 446c2aeab8c8d926e63f6faa459c7e4e55758653 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 13:09:54 +0100
Subject: [PATCH 01/13] Update to 2024 edition
---
Cargo.lock | 810 +++++++++++++++++++++++++++++------------------------
Cargo.toml | 17 +-
2 files changed, 453 insertions(+), 374 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index d27a5b3..d39a081 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -9,7 +9,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dfbe277e56a376000877090da837660b4427aad530e3028d44e0bffe4f89a1c1"
dependencies = [
"fallible-iterator 0.3.0",
- "gimli",
+ "gimli 0.31.1",
]
[[package]]
@@ -32,9 +32,9 @@ dependencies = [
[[package]]
name = "aho-corasick"
-version = "1.1.3"
+version = "1.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
dependencies = [
"memchr",
]
@@ -62,9 +62,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
[[package]]
name = "anyhow"
-version = "1.0.99"
+version = "1.0.100"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0674a1ddeecb70197781e945de4b3b8ffb61fa939a5597bcf48503737663100"
+checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61"
[[package]]
name = "arbitrary"
@@ -83,9 +83,9 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "async-compression"
-version = "0.4.30"
+version = "0.4.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "977eb15ea9efd848bb8a4a1a2500347ed7f0bf794edf0dc3ddcf439f43d36b23"
+checksum = "98ec5f6c2f8bc326c994cb9e241cc257ddaba9afa8555a43cffbb5dd86efaa37"
dependencies = [
"compression-codecs",
"compression-core",
@@ -118,21 +118,6 @@ version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c08606f8c3cbf4ce6ec8e28fb0014a2c086708fe954eaa885384a6165172e7e8"
-[[package]]
-name = "backtrace"
-version = "0.3.75"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6806a6321ec58106fea15becdad98371e28d92ccbc7c8f1b3b6dd724fe8f1002"
-dependencies = [
- "addr2line",
- "cfg-if",
- "libc",
- "miniz_oxide",
- "object",
- "rustc-demangle",
- "windows-targets",
-]
-
[[package]]
name = "base64"
version = "0.22.1"
@@ -153,11 +138,11 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "bitflags"
-version = "2.9.4"
+version = "2.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2261d10cca569e4643e526d8dc2e62e433cc8aba21ab764233731f8d369bf394"
+checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3"
dependencies = [
- "serde",
+ "serde_core",
]
[[package]]
@@ -171,9 +156,9 @@ dependencies = [
[[package]]
name = "breakpad-symbols"
-version = "0.26.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bb83553322690be12144c30cc06f95726339a5ef69c9ac37d02d1a54b8ebd0b"
+checksum = "9b544545512b213899840bb26f72cd13f9fb4c3de3dd5f8dc7219688f54aebe9"
dependencies = [
"async-trait",
"cachemap2",
@@ -183,7 +168,7 @@ dependencies = [
"minidump-common",
"nom",
"range-map",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"tracing",
]
@@ -219,9 +204,9 @@ dependencies = [
[[package]]
name = "bstr"
-version = "1.12.0"
+version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "234113d19d0d7d613b40e86fb654acf958910802bcceab913a4f9e7cda03b1a4"
+checksum = "63044e1ae8e69f3b5a92c736ca6269b8d12fa7efe39bf34ddb06d102cf0e2cab"
dependencies = [
"memchr",
"regex-automata",
@@ -230,9 +215,9 @@ dependencies = [
[[package]]
name = "bumpalo"
-version = "3.19.0"
+version = "3.19.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43"
+checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510"
[[package]]
name = "byteorder"
@@ -242,9 +227,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
-version = "1.10.1"
+version = "1.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d71b6127be86fdcfddb610f7182ac57211d4b18a3e9c82eb2d17662f2227ad6a"
+checksum = "b35204fbdc0b3f4446b89fc1ac2cf84a8a68971995d0bf2e925ec7cd960f9cb3"
[[package]]
name = "cab"
@@ -266,9 +251,9 @@ checksum = "68ccbd3153aa153b2f5eff557537ffce81e4dd6c50ae0eddc41dc8d0c388436f"
[[package]]
name = "cc"
-version = "1.2.36"
+version = "1.2.52"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5252b3d2648e5eedbc1a6f501e3c795e07025c1e93bbf8bbdd6eef7f447a6d54"
+checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -278,9 +263,9 @@ dependencies = [
[[package]]
name = "cfg-if"
-version = "1.0.3"
+version = "1.0.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fd1289c04a9ea8cb22300a459a72a385d7c73d3259e2ed7dcb2af674838cfa9"
+checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
[[package]]
name = "cfg_aliases"
@@ -296,9 +281,9 @@ checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea"
[[package]]
name = "compression-codecs"
-version = "0.4.30"
+version = "0.4.35"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "485abf41ac0c8047c07c87c72c8fb3eb5197f6e9d7ded615dfd1a00ae00a0f64"
+checksum = "b0f7ac3e5b97fdce45e8922fb05cae2c37f7bbd63d30dd94821dacfd8f3f2bf2"
dependencies = [
"brotli",
"compression-core",
@@ -308,9 +293,9 @@ dependencies = [
[[package]]
name = "compression-core"
-version = "0.4.29"
+version = "0.4.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e47641d3deaf41fb1538ac1f54735925e275eaf3bf4d55c81b137fba797e5cbb"
+checksum = "75984efb6ed102a0d42db99afb6c1948f0380d1d91808d5529916e6c08b49d8d"
[[package]]
name = "console"
@@ -342,9 +327,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b"
[[package]]
name = "cpp_demangle"
-version = "0.4.4"
+version = "0.4.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96e58d342ad113c2b878f16d5d034c03be492ae460cdbc02b7f0f2284d310c7d"
+checksum = "f2bb79cb74d735044c972aae58ed0aaa9a837e85b01106a54c39e42e97f62253"
dependencies = [
"cfg-if",
]
@@ -371,9 +356,9 @@ dependencies = [
[[package]]
name = "crc"
-version = "3.3.0"
+version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9710d3b3739c2e349eb44fe848ad0b7c8cb1e42bd87ee49371df2f7acaf3e675"
+checksum = "5eb8a2a1cd12ab0d987a5d5e825195d372001a4094a0376319d5a0ad71c1ba0d"
dependencies = [
"crc-catalog",
]
@@ -451,9 +436,9 @@ checksum = "d0a5c400df2834b80a4c3327b3aad3a4c4cd4de0629063962b03235697506a28"
[[package]]
name = "crypto-common"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
+checksum = "78c8292055d1c1df0cce5d180393dc8cce0abec0a7102adb6c7b1eef6016d60a"
dependencies = [
"generic-array",
"typenum",
@@ -477,9 +462,9 @@ dependencies = [
[[package]]
name = "deranged"
-version = "0.5.3"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d630bccd429a5bb5a64b5e94f693bfc48c9f8566418fda4c494cc94f911f87cc"
+checksum = "ececcb659e7ba858fb4f10388c250a7252eb0a27373f1a72b8748afdd248e587"
dependencies = [
"powerfmt",
]
@@ -523,7 +508,7 @@ dependencies = [
"libc",
"option-ext",
"redox_users",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -544,7 +529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b16f31d2e3160010dc6dee38b17c409dd856a96fe0a226d93e936bde539f184d"
dependencies = [
"anyhow",
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"cab",
"crossbeam",
"dirs",
@@ -615,7 +600,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
dependencies = [
"libc",
- "windows-sys 0.52.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -656,9 +641,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "find-msvc-tools"
-version = "0.1.1"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fd99930f64d146689264c637b5af2f0233a933bef0d8570e2526bf9e083192d"
+checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
[[package]]
name = "flagset"
@@ -668,21 +653,15 @@ checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe"
[[package]]
name = "flate2"
-version = "1.1.2"
+version = "1.1.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a3d7db9596fecd151c5f638c0ee5d5bd487b6e0ea232e5dc96d5250f6f94b1d"
+checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
dependencies = [
"crc32fast",
"libz-rs-sys",
"miniz_oxide",
]
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
[[package]]
name = "foldhash"
version = "0.1.5"
@@ -700,14 +679,14 @@ dependencies = [
[[package]]
name = "framehop"
-version = "0.13.3"
+version = "0.15.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09a5a3f0acb82df800ca3aa50c0d60d286c5d13d4cfc3114b3a9663f13b032fe"
+checksum = "78a7d65f75e837647bf8b1594ad3b559a929ee9a58d956d9f46999749957b6b9"
dependencies = [
"arrayvec",
"cfg-if",
"fallible-iterator 0.3.0",
- "gimli",
+ "gimli 0.32.3",
"macho-unwind-info",
"pe-unwind-info",
]
@@ -830,21 +809,21 @@ dependencies = [
"cfg-if",
"js-sys",
"libc",
- "wasi 0.11.1+wasi-snapshot-preview1",
+ "wasi",
"wasm-bindgen",
]
[[package]]
name = "getrandom"
-version = "0.3.3"
+version = "0.3.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "26145e563e54f2cadc477553f1ec5ee650b00862f0a58bcd12cbdc5f0ea2d2f4"
+checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd"
dependencies = [
"cfg-if",
"js-sys",
"libc",
"r-efi",
- "wasi 0.14.5+wasi-0.2.4",
+ "wasip2",
"wasm-bindgen",
]
@@ -858,6 +837,16 @@ dependencies = [
"stable_deref_trait",
]
+[[package]]
+name = "gimli"
+version = "0.32.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e629b9b98ef3dd8afe6ca2bd0f89306cec16d43d907889945bc5d6687f2f13c7"
+dependencies = [
+ "fallible-iterator 0.3.0",
+ "stable_deref_trait",
+]
+
[[package]]
name = "goblin"
version = "0.8.2"
@@ -902,6 +891,12 @@ dependencies = [
"serde",
]
+[[package]]
+name = "hashbrown"
+version = "0.16.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "841d1cc9bed7f9236f321df977030373f4a4163ae1a7dbfe1a51a2c1a51d9100"
+
[[package]]
name = "hermit-abi"
version = "0.5.2"
@@ -916,12 +911,11 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
[[package]]
name = "http"
-version = "1.3.1"
+version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f4a85d31aea989eead29a3aaf9e1115a180df8282431156e533de47660892565"
+checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
dependencies = [
"bytes",
- "fnv",
"itoa",
]
@@ -956,9 +950,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
[[package]]
name = "hyper"
-version = "1.7.0"
+version = "1.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb3aa54a13a0dfe7fbe3a59e0c76093041720fdc77b110cc0fc260fafb4dc51e"
+checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11"
dependencies = [
"atomic-waker",
"bytes",
@@ -994,9 +988,9 @@ dependencies = [
[[package]]
name = "hyper-util"
-version = "0.1.16"
+version = "0.1.19"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d9b05277c7e8da2c93a568989bb6207bef0112e8d17df7a6eda4a3cf143bc5e"
+checksum = "727805d60e7938b76b826a6ef209eb70eaa1812794f9424d4a4e2d740662df5f"
dependencies = [
"base64",
"bytes",
@@ -1018,9 +1012,9 @@ dependencies = [
[[package]]
name = "icu_collections"
-version = "2.0.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "200072f5d0e3614556f94a9930d5dc3e0662a652823904c3a75dc3b0af7fee47"
+checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43"
dependencies = [
"displaydoc",
"potential_utf",
@@ -1031,9 +1025,9 @@ dependencies = [
[[package]]
name = "icu_locale_core"
-version = "2.0.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0cde2700ccaed3872079a65fb1a78f6c0a36c91570f28755dda67bc8f7d9f00a"
+checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6"
dependencies = [
"displaydoc",
"litemap",
@@ -1044,11 +1038,10 @@ dependencies = [
[[package]]
name = "icu_normalizer"
-version = "2.0.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "436880e8e18df4d7bbc06d58432329d6458cc84531f7ac5f024e93deadb37979"
+checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599"
dependencies = [
- "displaydoc",
"icu_collections",
"icu_normalizer_data",
"icu_properties",
@@ -1059,42 +1052,38 @@ dependencies = [
[[package]]
name = "icu_normalizer_data"
-version = "2.0.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00210d6893afc98edb752b664b8890f0ef174c8adbb8d0be9710fa66fbbf72d3"
+checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a"
[[package]]
name = "icu_properties"
-version = "2.0.1"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "016c619c1eeb94efb86809b015c58f479963de65bdb6253345c1a1276f22e32b"
+checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec"
dependencies = [
- "displaydoc",
"icu_collections",
"icu_locale_core",
"icu_properties_data",
"icu_provider",
- "potential_utf",
"zerotrie",
"zerovec",
]
[[package]]
name = "icu_properties_data"
-version = "2.0.1"
+version = "2.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "298459143998310acd25ffe6810ed544932242d3f07083eee1084d83a71bd632"
+checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af"
[[package]]
name = "icu_provider"
-version = "2.0.0"
+version = "2.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03c80da27b5f4187909049ee2d72f276f0d9f99a42c306bd0131ecfe04d8e5af"
+checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614"
dependencies = [
"displaydoc",
"icu_locale_core",
- "stable_deref_trait",
- "tinystr",
"writeable",
"yoke",
"zerofrom",
@@ -1131,13 +1120,14 @@ checksum = "0cfe9645a18782869361d9c8732246be7b410ad4e919d3609ebabdac00ba12c3"
[[package]]
name = "indexmap"
-version = "2.11.1"
+version = "2.13.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "206a8042aec68fa4a62e8d3f7aa4ceb508177d9324faf261e1959e495b7a1921"
+checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017"
dependencies = [
"equivalent",
- "hashbrown 0.15.5",
+ "hashbrown 0.16.1",
"serde",
+ "serde_core",
]
[[package]]
@@ -1149,17 +1139,6 @@ dependencies = [
"smallvec",
]
-[[package]]
-name = "io-uring"
-version = "0.7.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "046fa2d4d00aea763528b4950358d0ead425372445dc8ff86312b3c69ff7727b"
-dependencies = [
- "bitflags 2.9.4",
- "cfg-if",
- "libc",
-]
-
[[package]]
name = "ipnet"
version = "2.11.0"
@@ -1168,9 +1147,9 @@ checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130"
[[package]]
name = "iri-string"
-version = "0.7.8"
+version = "0.7.10"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbc5ebe9c3a1a7a5127f920a418f7585e9e758e911d0466ed004f393b0e380b2"
+checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a"
dependencies = [
"memchr",
"serde",
@@ -1187,9 +1166,9 @@ dependencies = [
[[package]]
name = "itoa"
-version = "1.0.15"
+version = "1.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c"
+checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2"
[[package]]
name = "jobserver"
@@ -1197,7 +1176,7 @@ version = "0.1.34"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9afb3de4395d6b3e67a780b6de64b51c978ecf11cb9a462c66be7d4ca9039d33"
dependencies = [
- "getrandom 0.3.3",
+ "getrandom 0.3.4",
"libc",
]
@@ -1209,9 +1188,9 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5"
[[package]]
name = "js-sys"
-version = "0.3.78"
+version = "0.3.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c0b063578492ceec17683ef2f8c5e89121fbd0b172cbc280635ab7567db2738"
+checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -1231,25 +1210,25 @@ checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67"
[[package]]
name = "libc"
-version = "0.2.175"
+version = "0.2.180"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a82ae493e598baaea5209805c49bbf2ea7de956d50d7da0da1164f9c6d28543"
+checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc"
[[package]]
name = "libredox"
-version = "0.1.9"
+version = "0.1.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "391290121bad3d37fbddad76d8f5d1c1c314cfc646d143d7e07a3086ddff0ce3"
+checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"libc",
]
[[package]]
name = "libz-rs-sys"
-version = "0.5.2"
+version = "0.5.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "840db8cf39d9ec4dd794376f38acc40d0fc65eec2a8f484f7fd375b84602becd"
+checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415"
dependencies = [
"zlib-rs",
]
@@ -1272,7 +1251,7 @@ dependencies = [
"memchr",
"prost",
"prost-derive",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
]
[[package]]
@@ -1281,10 +1260,10 @@ version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "aa8fc7e83909ea3b9e2784591655637d3401f2f16014f9d8d6e23ccd138e665f"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"byteorder",
"memchr",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
]
[[package]]
@@ -1295,25 +1274,24 @@ checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039"
[[package]]
name = "litemap"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "241eaef5fd12c88705a01fc1066c48c4b36e0dd4377dcdc7ec3942cea7a69956"
+checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77"
[[package]]
name = "lock_api"
-version = "0.4.13"
+version = "0.4.14"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96936507f153605bddfcda068dd804796c84324ed2510809e5b2a624c81da765"
+checksum = "224399e74b87b5f3557511d98dff8b14089b3dadafcab6bb93eab67d3aace965"
dependencies = [
- "autocfg",
"scopeguard",
]
[[package]]
name = "log"
-version = "0.4.28"
+version = "0.4.29"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
+checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897"
[[package]]
name = "lru-slab"
@@ -1352,7 +1330,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb4bdc8b0ce69932332cf76d24af69c3a155242af95c226b2ab6c2e371ed1149"
dependencies = [
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"zerocopy",
"zerocopy-derive",
]
@@ -1365,15 +1343,15 @@ checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4"
[[package]]
name = "memchr"
-version = "2.7.5"
+version = "2.7.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32a282da65faaf38286cf3be983213fcf1d2e2a58700e808f83f4ea9a4804bc0"
+checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273"
[[package]]
name = "memmap2"
-version = "0.9.8"
+version = "0.9.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "843a98750cd611cc2965a8213b53b43e715f13c37a9e096c6408e69990961db7"
+checksum = "744133e4a0e0a658e1374cf3bf8e415c4052a15a111acd372764c55b4177d490"
dependencies = [
"libc",
]
@@ -1389,20 +1367,20 @@ dependencies = [
[[package]]
name = "minidump"
-version = "0.26.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ee9ea21482e519a57bfc5df90b736f25465ef349a31c18ff2c6332a2f18474de"
+checksum = "a902ca21d9772a66d3d1b050b3436dcadb192694be01409e0219902dcf4bc1e8"
dependencies = [
"debugid",
"encoding_rs",
"memmap2",
"minidump-common",
"num-traits",
- "procfs-core",
+ "procfs-core 0.17.0",
"prost",
"range-map",
"scroll 0.12.0",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"time",
"tracing",
"uuid",
@@ -1410,11 +1388,11 @@ dependencies = [
[[package]]
name = "minidump-common"
-version = "0.26.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd1e7ee92185b2f4fa67c3e5c1743057d979e145f58b4391d5481b79f0d8067c"
+checksum = "2e16d10087ae9e375bad7a40e8ef5504bc08e808ccc6019067ff9de42a84570f"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"debugid",
"num-derive",
"num-traits",
@@ -1425,9 +1403,9 @@ dependencies = [
[[package]]
name = "minidump-unwind"
-version = "0.26.0"
+version = "0.26.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6341a5955b1d4f20751227a08be5aaef9e313c9db73bc728fd18c6c653f34f4"
+checksum = "4aa8b7212f59c525f93c62457c54f9f9ac550316ee0e41f129b4b19165d5acd1"
dependencies = [
"async-trait",
"breakpad-symbols",
@@ -1447,7 +1425,7 @@ dependencies = [
name = "minidump-writer"
version = "0.11.0"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"byteorder",
"cfg-if",
"crash-context",
@@ -1466,13 +1444,13 @@ dependencies = [
"minidump-common",
"minidump-unwind",
"nix",
- "procfs-core",
+ "procfs-core 0.18.0",
"scroll 0.12.0",
"serde",
"serde_json",
"similar-asserts",
"tempfile",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"uuid",
]
@@ -1489,17 +1467,18 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
dependencies = [
"adler2",
+ "simd-adler32",
]
[[package]]
name = "mio"
-version = "1.0.4"
+version = "1.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78bed444cc8a2160f01cbcf811ef18cac863ad68ae8ca62092e8db51d51c761c"
+checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc"
dependencies = [
"libc",
- "wasi 0.11.1+wasi-snapshot-preview1",
- "windows-sys 0.59.0",
+ "wasi",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -1508,7 +1487,7 @@ version = "0.10.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c4c25a3bb7d880e8eceab4822f3141ad0700d20f025991c1f03bd3d00219a5fc"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
]
[[package]]
@@ -1517,7 +1496,7 @@ version = "0.11.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fbeff6bd154a309b2ada5639b2661ca6ae4599b34e8487dc276d2cd637da2d76"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"itoa",
]
@@ -1529,11 +1508,11 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
[[package]]
name = "nix"
-version = "0.29.0"
+version = "0.30.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46"
+checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"cfg-if",
"cfg_aliases",
"libc",
@@ -1623,9 +1602,9 @@ checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
[[package]]
name = "parking_lot"
-version = "0.12.4"
+version = "0.12.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70d58bf43669b5795d1576d0641cfb6fbb2057bf629506267a92807158584a13"
+checksum = "93857453250e3077bd71ff98b6a65ea6621a19bb0f559a85248955ac12c45a1a"
dependencies = [
"lock_api",
"parking_lot_core",
@@ -1633,15 +1612,15 @@ dependencies = [
[[package]]
name = "parking_lot_core"
-version = "0.9.11"
+version = "0.9.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc838d2a56b5b1a6c25f55575dfc605fabb63bb2365f6c2353ef9159aa69e4a5"
+checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1"
dependencies = [
"cfg-if",
"libc",
"redox_syscall",
"smallvec",
- "windows-targets",
+ "windows-link",
]
[[package]]
@@ -1675,12 +1654,12 @@ version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b2a2e496e34cd96a1bb26f681e5adb11c98f1e5378e294e60c06c0cf04c526ba"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"elsa",
"maybe-owned",
"pdb2",
"range-collections 0.4.6",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
]
[[package]]
@@ -1696,13 +1675,13 @@ dependencies = [
[[package]]
name = "pe-unwind-info"
-version = "0.4.0"
+version = "0.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "500fa4cdeacd98997c5865e3d0d1cb8fe7e9d7d75ecc775e07989a433a9a9a59"
+checksum = "97f6fccfd2d9d2df765ca23ff85fe5cc437fb0e6d3e164e4d3cbe09d14780c93"
dependencies = [
"arrayvec",
- "bitflags 2.9.4",
- "thiserror 2.0.16",
+ "bitflags 2.10.0",
+ "thiserror 2.0.17",
"zerocopy",
"zerocopy-derive",
]
@@ -1748,9 +1727,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6"
[[package]]
name = "potential_utf"
-version = "0.1.3"
+version = "0.1.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84df19adbe5b5a0782edcab45899906947ab039ccf4573713735ee7de1e6b08a"
+checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77"
dependencies = [
"zerovec",
]
@@ -1778,9 +1757,9 @@ checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
[[package]]
name = "proc-macro2"
-version = "1.0.101"
+version = "1.0.105"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89ae43fd86e4158d6db51ad8e2b80f313af9cc74f5c0e03ccb87de09998732de"
+checksum = "535d180e0ecab6268a3e718bb9fd44db66bbbc256257165fc699dadf70d16fe7"
dependencies = [
"unicode-ident",
]
@@ -1791,7 +1770,17 @@ version = "0.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "239df02d8349b06fc07398a3a1697b06418223b1c7725085e801e7c0fc6a12ec"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
+ "hex",
+]
+
+[[package]]
+name = "procfs-core"
+version = "0.18.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6401bf7b6af22f78b563665d15a22e9aef27775b79b149a66ca022468a4e405"
+dependencies = [
+ "bitflags 2.10.0",
"hex",
"serde",
]
@@ -1833,7 +1822,7 @@ dependencies = [
"rustc-hash",
"rustls",
"socket2",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"tokio",
"tracing",
"web-time",
@@ -1846,7 +1835,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31"
dependencies = [
"bytes",
- "getrandom 0.3.3",
+ "getrandom 0.3.4",
"lru-slab",
"rand",
"ring",
@@ -1854,7 +1843,7 @@ dependencies = [
"rustls",
"rustls-pki-types",
"slab",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"tinyvec",
"tracing",
"web-time",
@@ -1871,14 +1860,14 @@ dependencies = [
"once_cell",
"socket2",
"tracing",
- "windows-sys 0.52.0",
+ "windows-sys 0.60.2",
]
[[package]]
name = "quote"
-version = "1.0.40"
+version = "1.0.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d"
+checksum = "dc74d9a594b72ae6656596548f56f667211f8a97b3d4c3d467150794690dc40a"
dependencies = [
"proc-macro2",
]
@@ -1915,7 +1904,7 @@ version = "0.9.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
dependencies = [
- "getrandom 0.3.3",
+ "getrandom 0.3.4",
]
[[package]]
@@ -1952,17 +1941,17 @@ dependencies = [
[[package]]
name = "rangemap"
-version = "1.6.0"
+version = "1.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f93e7e49bb0bf967717f7bd674458b3d6b0c5f48ec7e3038166026a69fc22223"
+checksum = "973443cf09a9c8656b574a866ab68dfa19f0867d0340648c7d2f6a71b8a8ea68"
[[package]]
name = "redox_syscall"
-version = "0.5.17"
+version = "0.5.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5407465600fb0548f1442edf71dd20683c6ed326200ace4b1ef0763521bb3b77"
+checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
]
[[package]]
@@ -1973,23 +1962,23 @@ checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
dependencies = [
"getrandom 0.2.16",
"libredox",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
]
[[package]]
name = "ref-cast"
-version = "1.0.24"
+version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a0ae411dbe946a674d89546582cea4ba2bb8defac896622d6496f14c23ba5cf"
+checksum = "f354300ae66f76f1c85c5f84693f0ce81d747e2c3f21a45fef496d89c960bf7d"
dependencies = [
"ref-cast-impl",
]
[[package]]
name = "ref-cast-impl"
-version = "1.0.24"
+version = "1.0.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1165225c21bff1f3bbce98f5a1f889949bc902d3575308cc7b0de30b4f6d27c7"
+checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da"
dependencies = [
"proc-macro2",
"quote",
@@ -1998,9 +1987,9 @@ dependencies = [
[[package]]
name = "regex"
-version = "1.11.2"
+version = "1.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912"
+checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4"
dependencies = [
"aho-corasick",
"memchr",
@@ -2010,9 +1999,9 @@ dependencies = [
[[package]]
name = "regex-automata"
-version = "0.4.10"
+version = "0.4.13"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6b9458fa0bfeeac22b5ca447c63aaf45f28439a709ccd244698632f9aa6394d6"
+checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c"
dependencies = [
"aho-corasick",
"memchr",
@@ -2021,17 +2010,16 @@ dependencies = [
[[package]]
name = "regex-syntax"
-version = "0.8.6"
+version = "0.8.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "caf4aa5b0f434c91fe5c7f1ecb6a5ece2130b02ad2a590589dda5146df959001"
+checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58"
[[package]]
name = "reqwest"
-version = "0.12.23"
+version = "0.12.28"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d429f34c8092b2d42c7c93cec323bb4adeb7c67698f70839adec842ec10c7ceb"
+checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
dependencies = [
- "async-compression",
"base64",
"bytes",
"futures-core",
@@ -2095,22 +2083,22 @@ checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d"
[[package]]
name = "rustix"
-version = "1.1.2"
+version = "1.1.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e"
+checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34"
dependencies = [
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"errno",
"libc",
"linux-raw-sys",
- "windows-sys 0.52.0",
+ "windows-sys 0.61.2",
]
[[package]]
name = "rustls"
-version = "0.23.31"
+version = "0.23.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c0ebcbd2f03de0fc1122ad9bb24b127a5a6cd51d72604a3f3c50ac459762b6cc"
+checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b"
dependencies = [
"once_cell",
"ring",
@@ -2122,9 +2110,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.12.0"
+version = "1.13.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "229a4a4c221013e7e1f1a043678c5cc39fe5171437c88fb47151a21e6f5b5c79"
+checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282"
dependencies = [
"web-time",
"zeroize",
@@ -2132,9 +2120,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
-version = "0.103.5"
+version = "0.103.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b5a37813727b78798e53c2bec3f5e8fe12a6d6f8389bf9ca7802add4c9905ad8"
+checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
dependencies = [
"ring",
"rustls-pki-types",
@@ -2158,9 +2146,9 @@ dependencies = [
[[package]]
name = "ryu"
-version = "1.0.20"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f"
+checksum = "a50f4cf475b65d88e057964e0e9bb1f0aa9bbb2036dc65c64596b42932536984"
[[package]]
name = "samply-symbols"
@@ -2169,13 +2157,13 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "97e73d38bb04a373dba1260af91d4b0010e84cecd92d20b8e9949a910d5b9cbb"
dependencies = [
"addr2line",
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"cpp_demangle",
"crc32fast",
"debugid",
"elsa",
"flate2",
- "gimli",
+ "gimli 0.31.1",
"linux-perf-data",
"lzma-rs",
"macho-unwind-info",
@@ -2188,7 +2176,7 @@ dependencies = [
"rustc-demangle",
"scala-native-demangle",
"srcsrv",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"uuid",
"yoke",
"yoke-derive",
@@ -2236,24 +2224,34 @@ dependencies = [
[[package]]
name = "semver"
-version = "1.0.26"
+version = "1.0.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0"
+checksum = "d767eb0aabc880b29956c35734170f26ed551a859dbd361d140cdbeca61ab1e2"
[[package]]
name = "serde"
-version = "1.0.219"
+version = "1.0.228"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
+dependencies = [
+ "serde_core",
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_core"
+version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
dependencies = [
"serde_derive",
]
[[package]]
name = "serde_derive"
-version = "1.0.219"
+version = "1.0.228"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
dependencies = [
"proc-macro2",
"quote",
@@ -2262,14 +2260,15 @@ dependencies = [
[[package]]
name = "serde_json"
-version = "1.0.143"
+version = "1.0.149"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d401abef1d108fbd9cbaebc3e46611f4b1021f714a0597a71f41ee463f5f4a5a"
+checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86"
dependencies = [
"itoa",
"memchr",
- "ryu",
"serde",
+ "serde_core",
+ "zmij",
]
[[package]]
@@ -2303,9 +2302,9 @@ checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
[[package]]
name = "simd-adler32"
-version = "0.3.7"
+version = "0.3.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d66dc143e6b11c1eddc06d5c423cfc97062865baf299914ab64caa38182078fe"
+checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2"
[[package]]
name = "similar"
@@ -2358,12 +2357,12 @@ dependencies = [
[[package]]
name = "socket2"
-version = "0.6.0"
+version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "233504af464074f9d066d7b5416c5f9b894a5862a6506e306f7b816cdd6f1807"
+checksum = "17129e116933cf371d018bb80ae557e889637989d8638274fb25622827b03881"
dependencies = [
"libc",
- "windows-sys 0.59.0",
+ "windows-sys 0.60.2",
]
[[package]]
@@ -2373,14 +2372,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85cd3e3828fb4dd5ba0e7091777edb6c3db3cd2d6fc10547b29b40f6949a29be"
dependencies = [
"memchr",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
]
[[package]]
name = "stable_deref_trait"
-version = "1.2.0"
+version = "1.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3"
+checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596"
[[package]]
name = "static_assertions"
@@ -2409,9 +2408,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "symbolic"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "748dba8d41f02e83657cee9004092a4bd6996da413a546f4f493dc7e673c8f21"
+checksum = "857285fb5f446824e6bc78dc41267d8e544a3ed802ed58aee3445e71968a57c2"
dependencies = [
"symbolic-cfi",
"symbolic-common",
@@ -2421,9 +2420,9 @@ dependencies = [
[[package]]
name = "symbolic-cfi"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b60eb792b2b0258f9688f82f7e655741c495e914ee7b4da3873ddfb1ed6dea15"
+checksum = "861d431c83f336f09d027111aac735cd664e8b69e87029834b6db37b1d99c3a9"
dependencies = [
"symbolic-common",
"symbolic-debuginfo",
@@ -2432,9 +2431,9 @@ dependencies = [
[[package]]
name = "symbolic-common"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9da12f8fecbbeaa1ee62c1d50dc656407e007c3ee7b2a41afce4b5089eaef15e"
+checksum = "b3d8046c5674ab857104bc4559d505f4809b8060d57806e45d49737c97afeb60"
dependencies = [
"debugid",
"memmap2",
@@ -2444,16 +2443,16 @@ dependencies = [
[[package]]
name = "symbolic-debuginfo"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c97320c0523b58a45a2f08ab0cff84a95cf7d46f02ce732319f3592e7313b74f"
+checksum = "e16d3491f94b4f4481b64d59592b5a2d9d17f9843bf264eb743c2de1a811984a"
dependencies = [
"debugid",
"elementtree",
"elsa",
"fallible-iterator 0.3.0",
"flate2",
- "gimli",
+ "gimli 0.32.3",
"goblin 0.8.2",
"lazy_static",
"nom",
@@ -2466,6 +2465,7 @@ dependencies = [
"serde",
"serde_json",
"smallvec",
+ "srcsrv",
"symbolic-common",
"symbolic-ppdb",
"thiserror 1.0.69",
@@ -2476,9 +2476,9 @@ dependencies = [
[[package]]
name = "symbolic-demangle"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6fd35afe0ef9d35d3dcd41c67ddf882fc832a387221338153b7cd685a105495c"
+checksum = "1accb6e5c4b0f682de907623912e616b44be1c9e725775155546669dbff720ec"
dependencies = [
"cc",
"cpp_demangle",
@@ -2489,9 +2489,9 @@ dependencies = [
[[package]]
name = "symbolic-ppdb"
-version = "12.16.2"
+version = "12.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97e47ff1832c5d82d6ee3193fcb288d28e328dee8e7c689e8f3553f28d43ccb4"
+checksum = "e3e9d30ebe090d47489f02ae126878035fa70022d81229801e32f0f335e0727b"
dependencies = [
"flate2",
"indexmap",
@@ -2517,15 +2517,15 @@ dependencies = [
"http",
"reqwest",
"scopeguard",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"tokio",
]
[[package]]
name = "syn"
-version = "2.0.106"
+version = "2.0.114"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ede7c438028d4436d71104916910f5bb611972c5cfd7f89b8300a8186e6fada6"
+checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a"
dependencies = [
"proc-macro2",
"quote",
@@ -2554,15 +2554,15 @@ dependencies = [
[[package]]
name = "tempfile"
-version = "3.22.0"
+version = "3.24.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "84fa4d11fadde498443cca10fd3ac23c951f0dc59e080e9f4b93d4df4e4eea53"
+checksum = "655da9c7eb6305c55742045d5a8d2037996d61d8de95806335c7c86ce0f82e9c"
dependencies = [
"fastrand",
- "getrandom 0.3.3",
+ "getrandom 0.3.4",
"once_cell",
"rustix",
- "windows-sys 0.52.0",
+ "windows-sys 0.61.2",
]
[[package]]
@@ -2576,11 +2576,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "2.0.16"
+version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0"
+checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
dependencies = [
- "thiserror-impl 2.0.16",
+ "thiserror-impl 2.0.17",
]
[[package]]
@@ -2596,9 +2596,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
-version = "2.0.16"
+version = "2.0.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960"
+checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
dependencies = [
"proc-macro2",
"quote",
@@ -2607,11 +2607,12 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.43"
+version = "0.3.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "83bde6f1ec10e72d583d91623c939f623002284ef622b87de38cfd546cbf2031"
+checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
dependencies = [
"deranged",
+ "itoa",
"num-conv",
"powerfmt",
"serde",
@@ -2637,9 +2638,9 @@ dependencies = [
[[package]]
name = "tinystr"
-version = "0.8.1"
+version = "0.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d4f6d1145dcb577acf783d4e601bc1d76a13337bb54e6233add580b07344c8b"
+checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869"
dependencies = [
"displaydoc",
"zerovec",
@@ -2662,26 +2663,23 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
-version = "1.47.1"
+version = "1.49.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89e49afdadebb872d3145a5638b59eb0691ea23e46ca484037cfab3b76b95038"
+checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86"
dependencies = [
- "backtrace",
"bytes",
- "io-uring",
"libc",
"mio",
"pin-project-lite",
- "slab",
"socket2",
- "windows-sys 0.59.0",
+ "windows-sys 0.61.2",
]
[[package]]
name = "tokio-rustls"
-version = "0.26.2"
+version = "0.26.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e727b36a1a0e8b74c376ac2211e40c2c8af09fb4013c60d910495810f008e9b"
+checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61"
dependencies = [
"rustls",
"tokio",
@@ -2689,9 +2687,9 @@ dependencies = [
[[package]]
name = "tokio-util"
-version = "0.7.16"
+version = "0.7.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14307c986784f72ef81c89db7d9e28d6ac26d16213b109ea501696195e6e3ce5"
+checksum = "9ae9cec805b01e8fc3fd2fe289f89149a9b66dd16786abd8b19cfa7b48cb0098"
dependencies = [
"bytes",
"futures-core",
@@ -2717,17 +2715,22 @@ dependencies = [
[[package]]
name = "tower-http"
-version = "0.6.6"
+version = "0.6.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adc82fd73de2a9722ac5da747f12383d2bfdb93591ee6c58486e0097890f05f2"
+checksum = "d4e6559d53cc268e5031cd8429d05415bc4cb4aefc4aa5d6cc35fbf5b924a1f8"
dependencies = [
- "bitflags 2.9.4",
+ "async-compression",
+ "bitflags 2.10.0",
"bytes",
+ "futures-core",
"futures-util",
"http",
"http-body",
+ "http-body-util",
"iri-string",
"pin-project-lite",
+ "tokio",
+ "tokio-util",
"tower",
"tower-layer",
"tower-service",
@@ -2747,9 +2750,9 @@ checksum = "8df9b6e13f2d32c91b9bd719c00d1958837bc7dec474d94952798cc8e69eeec3"
[[package]]
name = "tracing"
-version = "0.1.41"
+version = "0.1.44"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "784e0ac535deb450455cbfa28a6f0df145ea1bb7ae51b821cf5e7927fdcfbdd0"
+checksum = "63e71662fa4b2a2c3a26f570f037eb95bb1f85397f3cd8076caed2f026a6d100"
dependencies = [
"log",
"pin-project-lite",
@@ -2759,9 +2762,9 @@ dependencies = [
[[package]]
name = "tracing-attributes"
-version = "0.1.30"
+version = "0.1.31"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81383ab64e72a7a8b8e13130c49e3dab29def6d0c7d76a03087b3cf71c5c6903"
+checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da"
dependencies = [
"proc-macro2",
"quote",
@@ -2770,9 +2773,9 @@ dependencies = [
[[package]]
name = "tracing-core"
-version = "0.1.34"
+version = "0.1.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678"
+checksum = "db97caf9d906fbde555dd62fa95ddba9eecfd14cb388e4f491a66d74cd5fb79a"
dependencies = [
"once_cell",
]
@@ -2795,15 +2798,15 @@ dependencies = [
[[package]]
name = "typenum"
-version = "1.18.0"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f"
+checksum = "562d481066bde0658276a35467c4af00bdc6ee726305698a55b86e61d7ad82bb"
[[package]]
name = "unicode-ident"
-version = "1.0.19"
+version = "1.0.22"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63a545481291138910575129486daeaf8ac54aee4387fe7906919f7830c7d9d"
+checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5"
[[package]]
name = "unicode-segmentation"
@@ -2819,9 +2822,9 @@ checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1"
[[package]]
name = "url"
-version = "2.5.7"
+version = "2.5.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b"
+checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed"
dependencies = [
"form_urlencoded",
"idna",
@@ -2837,9 +2840,9 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "uuid"
-version = "1.18.1"
+version = "1.19.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2"
+checksum = "e2e054861b4bd027cd373e18e8d8d8e6548085000e41290d95ce0c373a654b4a"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -2866,29 +2869,20 @@ version = "0.11.1+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
-[[package]]
-name = "wasi"
-version = "0.14.5+wasi-0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4494f6290a82f5fe584817a676a34b9d6763e8d9d18204009fb31dceca98fd4"
-dependencies = [
- "wasip2",
-]
-
[[package]]
name = "wasip2"
-version = "1.0.0+wasi-0.2.4"
+version = "1.0.1+wasi-0.2.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03fa2761397e5bd52002cd7e73110c71af2109aca4e521a9f40473fe685b0a24"
+checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7"
dependencies = [
"wit-bindgen",
]
[[package]]
name = "wasm-bindgen"
-version = "0.2.101"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e14915cadd45b529bb8d1f343c4ed0ac1de926144b746e2710f9cd05df6603b"
+checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
dependencies = [
"cfg-if",
"once_cell",
@@ -2897,25 +2891,11 @@ dependencies = [
"wasm-bindgen-shared",
]
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.101"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e28d1ba982ca7923fd01448d5c30c6864d0a14109560296a162f80f305fb93bb"
-dependencies = [
- "bumpalo",
- "log",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.51"
+version = "0.4.56"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ca85039a9b469b38336411d6d6ced91f3fc87109a2a27b0c197663f5144dffe"
+checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c"
dependencies = [
"cfg-if",
"js-sys",
@@ -2926,9 +2906,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.101"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7c3d463ae3eff775b0c45df9da45d68837702ac35af998361e2c84e7c5ec1b0d"
+checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -2936,22 +2916,22 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.101"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7bb4ce89b08211f923caf51d527662b75bdc9c9c7aab40f86dcb9fb85ac552aa"
+checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
dependencies = [
+ "bumpalo",
"proc-macro2",
"quote",
"syn",
- "wasm-bindgen-backend",
"wasm-bindgen-shared",
]
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.101"
+version = "0.2.106"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f143854a3b13752c6950862c906306adb27c7e839f7414cec8fea35beab624c1"
+checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
dependencies = [
"unicode-ident",
]
@@ -2976,7 +2956,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5309c1090e3e84dad0d382f42064e9933fdaedb87e468cc239f0eabea73ddcb6"
dependencies = [
"ahash",
- "bitflags 2.9.4",
+ "bitflags 2.10.0",
"hashbrown 0.14.5",
"indexmap",
"semver",
@@ -2995,9 +2975,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.78"
+version = "0.3.83"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77e4b637749ff0d92b8fad63aa1f7cff3cbe125fd49c175cd6345e7272638b12"
+checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -3015,9 +2995,9 @@ dependencies = [
[[package]]
name = "webpki-roots"
-version = "1.0.2"
+version = "1.0.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e8983c3ab33d6fb807cfcdad2491c4ea8cbc8ed839181c7dfd9c67c83e261b2"
+checksum = "12bed680863276c63889429bfd6cab3b99943659923822de1c8a39c49e4d722c"
dependencies = [
"rustls-pki-types",
]
@@ -3043,20 +3023,26 @@ dependencies = [
"samply-symbols",
"scopeguard",
"symsrv",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"tokio",
"uuid",
"yoke",
"yoke-derive",
]
+[[package]]
+name = "windows-link"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5"
+
[[package]]
name = "windows-sys"
version = "0.52.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
dependencies = [
- "windows-targets",
+ "windows-targets 0.52.6",
]
[[package]]
@@ -3065,7 +3051,25 @@ version = "0.59.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e38bc4d79ed67fd075bcc251a1c39b32a1776bbe92e5bef1f0bf1f8c531853b"
dependencies = [
- "windows-targets",
+ "windows-targets 0.52.6",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.60.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb"
+dependencies = [
+ "windows-targets 0.53.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.61.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
+dependencies = [
+ "windows-link",
]
[[package]]
@@ -3074,14 +3078,31 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
dependencies = [
- "windows_aarch64_gnullvm",
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_gnullvm",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_gnullvm",
- "windows_x86_64_msvc",
+ "windows_aarch64_gnullvm 0.52.6",
+ "windows_aarch64_msvc 0.52.6",
+ "windows_i686_gnu 0.52.6",
+ "windows_i686_gnullvm 0.52.6",
+ "windows_i686_msvc 0.52.6",
+ "windows_x86_64_gnu 0.52.6",
+ "windows_x86_64_gnullvm 0.52.6",
+ "windows_x86_64_msvc 0.52.6",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.53.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3"
+dependencies = [
+ "windows-link",
+ "windows_aarch64_gnullvm 0.53.1",
+ "windows_aarch64_msvc 0.53.1",
+ "windows_i686_gnu 0.53.1",
+ "windows_i686_gnullvm 0.53.1",
+ "windows_i686_msvc 0.53.1",
+ "windows_x86_64_gnu 0.53.1",
+ "windows_x86_64_gnullvm 0.53.1",
+ "windows_x86_64_msvc 0.53.1",
]
[[package]]
@@ -3090,67 +3111,114 @@ version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53"
+
[[package]]
name = "windows_aarch64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006"
+
[[package]]
name = "windows_i686_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
+[[package]]
+name = "windows_i686_gnu"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3"
+
[[package]]
name = "windows_i686_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c"
+
[[package]]
name = "windows_i686_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
+[[package]]
+name = "windows_i686_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2"
+
[[package]]
name = "windows_x86_64_gnu"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499"
+
[[package]]
name = "windows_x86_64_gnullvm"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1"
+
[[package]]
name = "windows_x86_64_msvc"
version = "0.52.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.53.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650"
+
[[package]]
name = "wit-bindgen"
-version = "0.45.1"
+version = "0.46.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c573471f125075647d03df72e026074b7203790d41351cd6edc96f46bcccd36"
+checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59"
[[package]]
name = "writeable"
-version = "0.6.1"
+version = "0.6.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea2f10b9bb0928dfb1b42b65e1f9e36f7f54dbdf08457afefb38afcdec4fa2bb"
+checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9"
[[package]]
name = "yoke"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f41bb01b8226ef4bfd589436a297c53d118f65921786300e427be8d487695cc"
+checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954"
dependencies = [
- "serde",
"stable_deref_trait",
"yoke-derive",
"zerofrom",
@@ -3158,9 +3226,9 @@ dependencies = [
[[package]]
name = "yoke-derive"
-version = "0.8.0"
+version = "0.8.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "38da3c9736e16c5d3c8c597a9aaa5d1fa565d0532ae05e27c24aa62fb32c0ab6"
+checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d"
dependencies = [
"proc-macro2",
"quote",
@@ -3170,18 +3238,18 @@ dependencies = [
[[package]]
name = "zerocopy"
-version = "0.8.27"
+version = "0.8.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0894878a5fa3edfd6da3f88c4805f4c8558e2b996227a3d864f47fe11e38282c"
+checksum = "668f5168d10b9ee831de31933dc111a459c97ec93225beb307aed970d1372dfd"
dependencies = [
"zerocopy-derive",
]
[[package]]
name = "zerocopy-derive"
-version = "0.8.27"
+version = "0.8.33"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88d2b8d9c68ad2b9e4340d7832716a4d21a22a1154777ad56ea55c51a9cf3831"
+checksum = "2c7962b26b0a8685668b671ee4b54d007a67d4eaf05fda79ac0ecf41e32270f1"
dependencies = [
"proc-macro2",
"quote",
@@ -3211,15 +3279,15 @@ dependencies = [
[[package]]
name = "zeroize"
-version = "1.8.1"
+version = "1.8.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
[[package]]
name = "zerotrie"
-version = "0.2.2"
+version = "0.2.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "36f0bbd478583f79edad978b407914f61b2972f5af6fa089686016be8f9af595"
+checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851"
dependencies = [
"displaydoc",
"yoke",
@@ -3228,9 +3296,9 @@ dependencies = [
[[package]]
name = "zerovec"
-version = "0.11.4"
+version = "0.11.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7aa2bd55086f1ab526693ecbe444205da57e25f4489879da80635a46d90e73b"
+checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002"
dependencies = [
"yoke",
"zerofrom",
@@ -3239,9 +3307,9 @@ dependencies = [
[[package]]
name = "zerovec-derive"
-version = "0.11.1"
+version = "0.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5b96237efa0c878c64bd89c436f661be4e46b2f3eff1ebb976f7ef2321d2f58f"
+checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3"
dependencies = [
"proc-macro2",
"quote",
@@ -3261,21 +3329,27 @@ dependencies = [
"flate2",
"indexmap",
"memchr",
- "thiserror 2.0.16",
+ "thiserror 2.0.17",
"zopfli",
]
[[package]]
name = "zlib-rs"
-version = "0.5.2"
+version = "0.5.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
+
+[[package]]
+name = "zmij"
+version = "1.0.12"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f06ae92f42f5e5c42443fd094f245eb656abf56dd7cce9b8b263236565e00f2"
+checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
[[package]]
name = "zopfli"
-version = "0.8.2"
+version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "edfc5ee405f504cd4984ecc6f14d02d55cfda60fa4b689434ef4102aae150cd7"
+checksum = "f05cd8797d63865425ff89b5c4a48804f35ba0ce8d125800027ad6017d2b5249"
dependencies = [
"bumpalo",
"crc32fast",
diff --git a/Cargo.toml b/Cargo.toml
index b37595a..3ecd302 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -5,11 +5,12 @@ authors = ["Martin Sirringhaus"]
description = "Rust rewrite of Breakpad's minidump_writer"
repository = "https://github.com/rust-minidump/minidump-writer"
homepage = "https://github.com/rust-minidump/minidump-writer"
-edition = "2021"
+edition = "2024"
+rust-version = "1.85.0"
license = "MIT"
[dependencies]
-bitflags = "2.8"
+bitflags = "2.10"
byteorder = "1.4"
cfg-if = "1.0"
crash-context = "0.6"
@@ -17,7 +18,9 @@ error-graph = { version = "0.1.1", features = ["serde"] }
failspot = "0.2.0"
log = "0.4"
memoffset = "0.9"
+# Type definitions and utilities for working with the Minidump format
minidump-common = "0.26"
+# Reading and writing to memory. Keep aligned with version used by minidump-common and goblin
scroll = "0.12"
serde = { version = "1.0.208", features = ["derive"] }
serde_json = "1.0.116"
@@ -26,11 +29,12 @@ thiserror = "2.0"
[target.'cfg(unix)'.dependencies]
libc = "0.2"
-goblin = "0.9.2"
+# goblin >= 0.10 uses scroll 0.13
+goblin = "0.9"
memmap2 = "0.9"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
-nix = { version = "0.29", default-features = false, features = [
+nix = { version = "0.30", default-features = false, features = [
"mman",
"process",
"ptrace",
@@ -40,13 +44,14 @@ nix = { version = "0.29", default-features = false, features = [
] }
# Used for parsing procfs info.
# default-features is disabled since it pulls in chrono
-procfs-core = { version = "0.17", default-features = false, features = ["serde1"] }
+procfs-core = { version = "0.18", default-features = false, features = ["serde1"] }
[target.'cfg(target_os = "windows")'.dependencies]
bitflags = "2.4"
[target.'cfg(target_os = "macos")'.dependencies]
-# Binds some additional mac specifics not in libc
+# Binds some additional mac specifics not in libc, note that other dependents
+# such as wasmtime still use 0.4, so only bump if the ecosystem moves to newer versions
mach2 = "0.4"
[dev-dependencies]
From a2ad4ccbed081786cd312fe8e88484a3331170e3 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 13:23:48 +0100
Subject: [PATCH 02/13] Rustfmt
---
examples/synthetic.rs | 2 +-
src/bin/test.rs | 5 +--
src/linux/android.rs | 4 +--
src/linux/crash_context/aarch64.rs | 2 +-
src/linux/crash_context/x86_64.rs | 2 +-
src/linux/dso_debug.rs | 2 +-
src/linux/maps_reader.rs | 7 +++-
src/linux/mem_reader.rs | 2 +-
src/linux/minidump_writer/errors.rs | 2 +-
.../minidump_writer/handle_data_stream.rs | 6 +---
.../memory_info_list_stream.rs | 2 +-
src/linux/minidump_writer/mod.rs | 6 ++--
src/linux/module_reader.rs | 4 ++-
src/linux/thread_info/aarch64.rs | 2 +-
src/linux/thread_info/mips.rs | 2 +-
src/linux/thread_info/mod.rs | 2 +-
src/mac/mach.rs | 34 +++++++++++++------
src/mac/streams/misc_info.rs | 2 +-
src/minidump_format.rs | 7 ++--
src/windows/ffi.rs | 2 +-
src/windows/minidump_writer.rs | 12 +++----
tests/common/mod.rs | 7 ++--
tests/linux_minidump_writer.rs | 4 +--
tests/linux_minidump_writer_soft_error.rs | 2 +-
tests/ptrace_dumper.rs | 2 +-
25 files changed, 70 insertions(+), 54 deletions(-)
diff --git a/examples/synthetic.rs b/examples/synthetic.rs
index 63681d9..e7d4ebe 100644
--- a/examples/synthetic.rs
+++ b/examples/synthetic.rs
@@ -4,7 +4,7 @@ use {
minidump_writer::{
dir_section::DirSection,
mem_writer::{Buffer, MemoryWriter},
- minidump_format::{MDRawHeader, MD_HEADER_SIGNATURE, MD_HEADER_VERSION},
+ minidump_format::{MD_HEADER_SIGNATURE, MD_HEADER_VERSION, MDRawHeader},
},
std::fs::File,
};
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 19986a7..881f097 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -10,11 +10,12 @@ mod linux {
super::*,
error_graph::ErrorList,
minidump_writer::{
+ LINUX_GATE_LIBRARY_NAME,
minidump_writer::{MinidumpWriter, MinidumpWriterConfig},
- module_reader, LINUX_GATE_LIBRARY_NAME,
+ module_reader,
},
nix::{
- sys::mman::{mmap_anonymous, MapFlags, ProtFlags},
+ sys::mman::{MapFlags, ProtFlags, mmap_anonymous},
unistd::getppid,
},
};
diff --git a/src/linux/android.rs b/src/linux/android.rs
index 7eee7cb..94c89ef 100644
--- a/src/linux/android.rs
+++ b/src/linux/android.rs
@@ -1,7 +1,7 @@
use {
super::{
- maps_reader::MappingInfo, mem_reader::CopyFromProcessError,
- minidump_writer::MinidumpWriter, Pid,
+ Pid, maps_reader::MappingInfo, mem_reader::CopyFromProcessError,
+ minidump_writer::MinidumpWriter,
},
goblin::elf,
};
diff --git a/src/linux/crash_context/aarch64.rs b/src/linux/crash_context/aarch64.rs
index f254ca4..753a30d 100644
--- a/src/linux/crash_context/aarch64.rs
+++ b/src/linux/crash_context/aarch64.rs
@@ -1,7 +1,7 @@
use {
super::CrashContext,
crate::{
- minidump_cpu::{RawContextCPU, FP_REG_COUNT, GP_REG_COUNT},
+ minidump_cpu::{FP_REG_COUNT, GP_REG_COUNT, RawContextCPU},
minidump_format::format,
},
};
diff --git a/src/linux/crash_context/x86_64.rs b/src/linux/crash_context/x86_64.rs
index 2d5f29c..8fc5a66 100644
--- a/src/linux/crash_context/x86_64.rs
+++ b/src/linux/crash_context/x86_64.rs
@@ -2,7 +2,7 @@ use {
super::{super::thread_info::copy_u32_registers, CrashContext},
crate::{minidump_cpu::RawContextCPU, minidump_format::format},
libc::{
- REG_CSGSFS, REG_EFL, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15, REG_R8, REG_R9,
+ REG_CSGSFS, REG_EFL, REG_R8, REG_R9, REG_R10, REG_R11, REG_R12, REG_R13, REG_R14, REG_R15,
REG_RAX, REG_RBP, REG_RBX, REG_RCX, REG_RDI, REG_RDX, REG_RIP, REG_RSI, REG_RSP,
},
scroll::Pwrite,
diff --git a/src/linux/dso_debug.rs b/src/linux/dso_debug.rs
index 67d6e6f..ab84da4 100644
--- a/src/linux/dso_debug.rs
+++ b/src/linux/dso_debug.rs
@@ -5,7 +5,7 @@ use {
},
crate::{
mem_writer::{
- write_string_to_location, Buffer, MemoryArrayWriter, MemoryWriter, MemoryWriterError,
+ Buffer, MemoryArrayWriter, MemoryWriter, MemoryWriterError, write_string_to_location,
},
minidump_format::*,
},
diff --git a/src/linux/maps_reader.rs b/src/linux/maps_reader.rs
index 7f6e81e..d0370c8 100644
--- a/src/linux/maps_reader.rs
+++ b/src/linux/maps_reader.rs
@@ -739,7 +739,12 @@ a4840000-a4873000 rw-p 09021000 08:12 393449 /data/app/org.mozilla.firefox-1
.get_mapping_effective_path_name_and_version(None)
.expect("Couldn't get effective name for mapping");
assert_eq!(file_name, "libmozgtk.so");
- assert_eq!(file_path, PathBuf::from("/home/martin/Documents/mozilla/devel/mozilla-central/obj/widget/gtk/mozgtk/gtk3/libmozgtk.so"));
+ assert_eq!(
+ file_path,
+ PathBuf::from(
+ "/home/martin/Documents/mozilla/devel/mozilla-central/obj/widget/gtk/mozgtk/gtk3/libmozgtk.so"
+ )
+ );
}
#[test]
diff --git a/src/linux/mem_reader.rs b/src/linux/mem_reader.rs
index 4ca9ff3..e480e0f 100644
--- a/src/linux/mem_reader.rs
+++ b/src/linux/mem_reader.rs
@@ -1,7 +1,7 @@
//! Functionality for reading a remote process's memory
use {
- super::{minidump_writer::MinidumpWriter, serializers::*, Pid},
+ super::{Pid, minidump_writer::MinidumpWriter, serializers::*},
std::sync::OnceLock,
};
diff --git a/src/linux/minidump_writer/errors.rs b/src/linux/minidump_writer/errors.rs
index d73a9ce..6bea5ff 100644
--- a/src/linux/minidump_writer/errors.rs
+++ b/src/linux/minidump_writer/errors.rs
@@ -1,5 +1,6 @@
use {
super::super::{
+ Pid,
auxv::AuxvError,
dso_debug::SectionDsoDebugError,
maps_reader::MapsReaderError,
@@ -13,7 +14,6 @@ use {
},
module_reader::ModuleReaderError,
serializers::*,
- Pid,
},
crate::{dir_section::FileWriterError, mem_writer::MemoryWriterError, serializers::*},
error_graph::ErrorList,
diff --git a/src/linux/minidump_writer/handle_data_stream.rs b/src/linux/minidump_writer/handle_data_stream.rs
index ea901a3..e8e4477 100644
--- a/src/linux/minidump_writer/handle_data_stream.rs
+++ b/src/linux/minidump_writer/handle_data_stream.rs
@@ -15,11 +15,7 @@ fn file_stat(path: &Path) -> Option {
let mut stat = unsafe { std::mem::zeroed::() };
let result = unsafe { libc::stat(c_path.as_ptr(), &mut stat) };
- if result == 0 {
- Some(stat)
- } else {
- None
- }
+ if result == 0 { Some(stat) } else { None }
}
fn direntry_to_descriptor(buffer: &mut DumpBuf, entry: &DirEntry) -> Option {
diff --git a/src/linux/minidump_writer/memory_info_list_stream.rs b/src/linux/minidump_writer/memory_info_list_stream.rs
index 89581c3..2b4694a 100644
--- a/src/linux/minidump_writer/memory_info_list_stream.rs
+++ b/src/linux/minidump_writer/memory_info_list_stream.rs
@@ -1,7 +1,7 @@
use {
super::*,
minidump_common::format::{MemoryProtection, MemoryState, MemoryType},
- procfs_core::{process::MMPermissions, FromRead},
+ procfs_core::{FromRead, process::MMPermissions},
};
#[derive(Debug, Error, serde::Serialize)]
diff --git a/src/linux/minidump_writer/mod.rs b/src/linux/minidump_writer/mod.rs
index fc587da..f388b2e 100644
--- a/src/linux/minidump_writer/mod.rs
+++ b/src/linux/minidump_writer/mod.rs
@@ -1,5 +1,6 @@
use {
super::{
+ Pid,
app_memory::AppMemoryList,
auxv::AuxvDumpInfo,
crash_context::CrashContext,
@@ -10,12 +11,11 @@ use {
module_reader,
serializers::*,
thread_info::{ThreadInfo, ThreadInfoError},
- Pid,
},
crate::{
dir_section::{DirSection, DumpBuf},
mem_writer::{
- write_string_to_location, Buffer, MemoryArrayWriter, MemoryWriter, MemoryWriterError,
+ Buffer, MemoryArrayWriter, MemoryWriter, MemoryWriterError, write_string_to_location,
},
minidump_format::*,
serializers::*,
@@ -28,8 +28,8 @@ use {
sys::{ptrace, signal, wait},
},
procfs_core::{
- process::{MMPermissions, ProcState, Stat},
FromRead,
+ process::{MMPermissions, ProcState, Stat},
},
std::{
io::{Seek, Write},
diff --git a/src/linux/module_reader.rs b/src/linux/module_reader.rs
index 048d023..4841b65 100644
--- a/src/linux/module_reader.rs
+++ b/src/linux/module_reader.rs
@@ -670,7 +670,9 @@ mod test {
let id = reader.build_id_generate_from_text().unwrap();
assert_eq!(
id,
- vec![0x6a, 0x3c, 0x58, 0x31, 0xff, 0x0f, 0x05, 0, 0, 0, 0, 0, 0, 0, 0, 0]
+ vec![
+ 0x6a, 0x3c, 0x58, 0x31, 0xff, 0x0f, 0x05, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ]
);
}
diff --git a/src/linux/thread_info/aarch64.rs b/src/linux/thread_info/aarch64.rs
index 4bf4c6f..681cc56 100644
--- a/src/linux/thread_info/aarch64.rs
+++ b/src/linux/thread_info/aarch64.rs
@@ -1,6 +1,6 @@
use {
super::{CommonThreadInfo, NT_Elf, Pid, ThreadInfoError},
- crate::minidump_cpu::{RawContextCPU, FP_REG_COUNT, GP_REG_COUNT},
+ crate::minidump_cpu::{FP_REG_COUNT, GP_REG_COUNT, RawContextCPU},
nix::sys::ptrace,
};
diff --git a/src/linux/thread_info/mips.rs b/src/linux/thread_info/mips.rs
index 2a99f07..1a6bdbf 100644
--- a/src/linux/thread_info/mips.rs
+++ b/src/linux/thread_info/mips.rs
@@ -1,4 +1,4 @@
-use super::{errors::ThreadInfoError, Pid};
+use super::{Pid, errors::ThreadInfoError};
type Result = std::result::Result;
diff --git a/src/linux/thread_info/mod.rs b/src/linux/thread_info/mod.rs
index eed2342..20c0ff7 100644
--- a/src/linux/thread_info/mod.rs
+++ b/src/linux/thread_info/mod.rs
@@ -1,5 +1,5 @@
use {
- super::{serializers::*, Pid},
+ super::{Pid, serializers::*},
crate::serializers::*,
nix::{errno::Errno, sys::ptrace},
std::{
diff --git a/src/mac/mach.rs b/src/mac/mach.rs
index 9b0179f..df747ab 100644
--- a/src/mac/mach.rs
+++ b/src/mac/mach.rs
@@ -3,7 +3,7 @@
// Just exports all of the mach functions we use into a flat list
pub use mach2::{
- kern_return::{kern_return_t, KERN_SUCCESS},
+ kern_return::{KERN_SUCCESS, kern_return_t},
port::mach_port_name_t,
task::{self, task_threads},
task_info,
@@ -22,9 +22,13 @@ pub enum KernelError {
InvalidAddress = 1,
#[error("specified memory is valid, but does not permit the required forms of access")]
ProtectionFailure = 2,
- #[error("the address range specified is already in use, or no address range of the size specified could be found")]
+ #[error(
+ "the address range specified is already in use, or no address range of the size specified could be found"
+ )]
NoSpace = 3,
- #[error("the function requested was not applicable to this type of argument, or an argument is invalid")]
+ #[error(
+ "the function requested was not applicable to this type of argument, or an argument is invalid"
+ )]
InvalidArgument = 4,
#[error("the function could not be performed")]
Failure = 5,
@@ -38,9 +42,7 @@ pub enum KernelError {
"during a page fault, the target address refers to a memory object that has been destroyed"
)]
MemoryFailure = 9,
- #[error(
- "during a page fault, the memory object indicated that the data could not be returned"
- )]
+ #[error("during a page fault, the memory object indicated that the data could not be returned")]
MemoryError = 10,
#[error("the receive right is already a member of the portset")]
AlreadyInSet = 11,
@@ -66,12 +68,16 @@ pub enum KernelError {
RightExists = 21,
#[error("target host isn't actually a host")]
InvalidHost = 22,
- #[error("an attempt was made to supply 'precious' data for memory that is already present in a memory object")]
+ #[error(
+ "an attempt was made to supply 'precious' data for memory that is already present in a memory object"
+ )]
MemoryPresent = 23,
// These 2 are errors which should only ever be seen by the kernel itself
//MemoryDataMoved = 24,
//MemoryRestartCopy = 25,
- #[error("an argument applied to assert processor set privilege was not a processor set control port")]
+ #[error(
+ "an argument applied to assert processor set privilege was not a processor set control port"
+ )]
InvalidProcessorSet = 26,
#[error("the specified scheduling attributes exceed the thread's limits")]
PolicyLimit = 27,
@@ -85,7 +91,9 @@ pub enum KernelError {
AlreadyWaiting = 30,
#[error("an attempt was made to destroy the default processor set")]
DefaultSet = 31,
- #[error("an attempt was made to fetch an exception port that is protected, or to abort a thread while processing a protected exception")]
+ #[error(
+ "an attempt was made to fetch an exception port that is protected, or to abort a thread while processing a protected exception"
+ )]
ExceptionProtected = 32,
#[error("a ledger was required but not supplied")]
InvalidLedger = 33,
@@ -107,7 +115,9 @@ pub enum KernelError {
LockOwnedSelf = 41,
#[error("semaphore has been destroyed and is no longer available")]
SemaphoreDestroyed = 42,
- #[error("return from RPC indicating the target server was terminated before it successfully replied")]
+ #[error(
+ "return from RPC indicating the target server was terminated before it successfully replied"
+ )]
RpcServerTerminated = 43,
#[error("terminate an orphaned activation")]
RpcTerminateOrphan = 44,
@@ -121,7 +131,9 @@ pub enum KernelError {
NotWaiting = 48,
#[error("some thread-oriented operation (semaphore_wait) timed out")]
OperationTimedOut = 49,
- #[error("during a page fault, indicates that the page was rejected as a result of a signature check")]
+ #[error(
+ "during a page fault, indicates that the page was rejected as a result of a signature check"
+ )]
CodesignError = 50,
#[error("the requested property cannot be changed at this time")]
PoicyStatic = 51,
diff --git a/src/mac/streams/misc_info.rs b/src/mac/streams/misc_info.rs
index f386004..5954b63 100644
--- a/src/mac/streams/misc_info.rs
+++ b/src/mac/streams/misc_info.rs
@@ -1,6 +1,6 @@
use {
super::*,
- format::{MiscInfoFlags, MINIDUMP_MISC_INFO_2 as MDRawMiscInfo},
+ format::{MINIDUMP_MISC_INFO_2 as MDRawMiscInfo, MiscInfoFlags},
std::time::Duration,
};
diff --git a/src/minidump_format.rs b/src/minidump_format.rs
index 668ac33..82e7478 100644
--- a/src/minidump_format.rs
+++ b/src/minidump_format.rs
@@ -1,6 +1,5 @@
pub use minidump_common::format::{
- self, ArmElfHwCaps as MDCPUInformationARMElfHwCaps, PlatformId,
- ProcessorArchitecture as MDCPUArchitecture, GUID, MINIDUMP_DIRECTORY as MDRawDirectory,
+ self, ArmElfHwCaps as MDCPUInformationARMElfHwCaps, GUID, MINIDUMP_DIRECTORY as MDRawDirectory,
MINIDUMP_EXCEPTION as MDException, MINIDUMP_EXCEPTION_STREAM as MDRawExceptionStream,
MINIDUMP_HANDLE_DATA_STREAM as MDRawHandleDataStream,
MINIDUMP_HANDLE_DESCRIPTOR as MDRawHandleDescriptor, MINIDUMP_HEADER as MDRawHeader,
@@ -9,8 +8,8 @@ pub use minidump_common::format::{
MINIDUMP_MEMORY_INFO_LIST as MDMemoryInfoList, MINIDUMP_MODULE as MDRawModule,
MINIDUMP_SIGNATURE as MD_HEADER_SIGNATURE, MINIDUMP_STREAM_TYPE as MDStreamType,
MINIDUMP_SYSTEM_INFO as MDRawSystemInfo, MINIDUMP_THREAD as MDRawThread,
- MINIDUMP_THREAD_NAME as MDRawThreadName, MINIDUMP_VERSION as MD_HEADER_VERSION,
- VS_FIXEDFILEINFO as MDVSFixedFileInfo,
+ MINIDUMP_THREAD_NAME as MDRawThreadName, MINIDUMP_VERSION as MD_HEADER_VERSION, PlatformId,
+ ProcessorArchitecture as MDCPUArchitecture, VS_FIXEDFILEINFO as MDVSFixedFileInfo,
};
/* An MDRVA is an offset into the minidump file. The beginning of the
diff --git a/src/windows/ffi.rs b/src/windows/ffi.rs
index 933228f..6075b35 100644
--- a/src/windows/ffi.rs
+++ b/src/windows/ffi.rs
@@ -14,7 +14,7 @@
clippy::upper_case_acronyms
)]
-pub use crash_context::{capture_context, CONTEXT, EXCEPTION_POINTERS, EXCEPTION_RECORD};
+pub use crash_context::{CONTEXT, EXCEPTION_POINTERS, EXCEPTION_RECORD, capture_context};
pub type HANDLE = isize;
pub type BOOL = i32;
diff --git a/src/windows/minidump_writer.rs b/src/windows/minidump_writer.rs
index 5987e37..d099a34 100644
--- a/src/windows/minidump_writer.rs
+++ b/src/windows/minidump_writer.rs
@@ -4,12 +4,12 @@ use {
super::{
errors::Error,
ffi::{
- capture_context, CloseHandle, GetCurrentProcess, GetCurrentThreadId, GetThreadContext,
- MiniDumpWriteDump, MinidumpType, OpenProcess, OpenThread, ResumeThread, SuspendThread,
- EXCEPTION_POINTERS, EXCEPTION_RECORD, FALSE, HANDLE, MINIDUMP_EXCEPTION_INFORMATION,
- MINIDUMP_USER_STREAM, MINIDUMP_USER_STREAM_INFORMATION, PROCESS_ALL_ACCESS,
- STATUS_NONCONTINUABLE_EXCEPTION, THREAD_GET_CONTEXT, THREAD_QUERY_INFORMATION,
- THREAD_SUSPEND_RESUME,
+ CloseHandle, EXCEPTION_POINTERS, EXCEPTION_RECORD, FALSE, GetCurrentProcess,
+ GetCurrentThreadId, GetThreadContext, HANDLE, MINIDUMP_EXCEPTION_INFORMATION,
+ MINIDUMP_USER_STREAM, MINIDUMP_USER_STREAM_INFORMATION, MiniDumpWriteDump,
+ MinidumpType, OpenProcess, OpenThread, PROCESS_ALL_ACCESS, ResumeThread,
+ STATUS_NONCONTINUABLE_EXCEPTION, SuspendThread, THREAD_GET_CONTEXT,
+ THREAD_QUERY_INFORMATION, THREAD_SUSPEND_RESUME, capture_context,
},
},
minidump_common::format::{BreakpadInfoValid, MINIDUMP_BREAKPAD_INFO, MINIDUMP_STREAM_TYPE},
diff --git a/tests/common/mod.rs b/tests/common/mod.rs
index 232d79b..7ad470c 100644
--- a/tests/common/mod.rs
+++ b/tests/common/mod.rs
@@ -135,9 +135,10 @@ pub fn assert_soft_errors_in_minidump<'a, 'b, T, I>(
// Ensure that every error we expect is in the actual list somewhere
for expected_error in expected_errors {
- assert!(actual_errors
- .iter()
- .any(|actual_error| actual_error == expected_error),
+ assert!(
+ actual_errors
+ .iter()
+ .any(|actual_error| actual_error == expected_error),
"soft error list missing expected error `{expected_error:#?}`\nError_list: {actual_errors:#?}"
);
}
diff --git a/tests/linux_minidump_writer.rs b/tests/linux_minidump_writer.rs
index ed3202a..360c565 100644
--- a/tests/linux_minidump_writer.rs
+++ b/tests/linux_minidump_writer.rs
@@ -6,12 +6,12 @@ use {
minidump::*,
minidump_common::format::{GUID, MINIDUMP_STREAM_TYPE::*},
minidump_writer::{
+ Pid,
app_memory::AppMemory,
crash_context::CrashContext,
maps_reader::{MappingEntry, MappingInfo, SystemMappingInfo},
- minidump_writer::{errors::WriterError, MinidumpWriter, MinidumpWriterConfig},
+ minidump_writer::{MinidumpWriter, MinidumpWriterConfig, errors::WriterError},
module_reader::{BuildId, ReadFromModule},
- Pid,
},
nix::{errno::Errno, sys::signal::Signal},
procfs_core::process::MMPermissions,
diff --git a/tests/linux_minidump_writer_soft_error.rs b/tests/linux_minidump_writer_soft_error.rs
index 736009e..ba5ca76 100644
--- a/tests/linux_minidump_writer_soft_error.rs
+++ b/tests/linux_minidump_writer_soft_error.rs
@@ -3,7 +3,7 @@
use {
common::*,
minidump::Minidump,
- minidump_writer::{minidump_writer::MinidumpWriterConfig, FailSpotName},
+ minidump_writer::{FailSpotName, minidump_writer::MinidumpWriterConfig},
serde_json::json,
};
diff --git a/tests/ptrace_dumper.rs b/tests/ptrace_dumper.rs
index 010af04..02c2747 100644
--- a/tests/ptrace_dumper.rs
+++ b/tests/ptrace_dumper.rs
@@ -6,7 +6,7 @@ use {
error_graph::ErrorList,
minidump_writer::minidump_writer::MinidumpWriterConfig,
nix::{
- sys::mman::{mmap, MapFlags, ProtFlags},
+ sys::mman::{MapFlags, ProtFlags, mmap},
sys::signal::Signal,
},
std::{
From 7767844d03008e6810c1598610b21fcda8f571a3 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 13:25:11 +0100
Subject: [PATCH 03/13] Make extern block unsafe
---
src/mac/mach.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mac/mach.rs b/src/mac/mach.rs
index df747ab..f807783 100644
--- a/src/mac/mach.rs
+++ b/src/mac/mach.rs
@@ -660,7 +660,7 @@ pub fn sysctl_string(name: &[u8]) -> String {
String::from_utf8(string_buf).unwrap_or_default()
}
-extern "C" {
+unsafe extern "C" {
/// From , this retrieves the normal PID for
/// the specified task as the syscalls from BSD use PIDs, not mach ports.
///
From 1f2bc67ecb3b9be5c26e46137ae837746c33d256 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 13:29:26 +0100
Subject: [PATCH 04/13] And again
---
src/mac/streams/module_list.rs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/mac/streams/module_list.rs b/src/mac/streams/module_list.rs
index d1307c8..38be3c5 100644
--- a/src/mac/streams/module_list.rs
+++ b/src/mac/streams/module_list.rs
@@ -329,7 +329,7 @@ mod test {
// This function isn't declared in libc nor mach2. And is also undocumented
// by apple, I know, SHOCKING
- extern "C" {
+ unsafe extern "C" {
fn getsegmentdata(
header: *const libc::mach_header,
segname: *const u8,
From f149863331d50b4094290d098fa31f1264219e61 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 13:32:54 +0100
Subject: [PATCH 05/13] And again
---
src/bin/test.rs | 2 +-
src/windows/ffi.rs | 4 ++--
tests/windows_minidump_writer.rs | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 881f097..3360e49 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -421,7 +421,7 @@ mod windows {
use std::mem;
#[link(name = "kernel32")]
- extern "system" {
+ unsafe extern "system" {
pub fn GetCurrentProcessId() -> u32;
pub fn GetCurrentThreadId() -> u32;
pub fn GetCurrentThread() -> isize;
diff --git a/src/windows/ffi.rs b/src/windows/ffi.rs
index 6075b35..7dc209d 100644
--- a/src/windows/ffi.rs
+++ b/src/windows/ffi.rs
@@ -416,7 +416,7 @@ pub struct MINIDUMP_CALLBACK_INFORMATION {
}
#[link(name = "kernel32")]
-extern "system" {
+unsafe extern "system" {
pub fn CloseHandle(handle: HANDLE) -> BOOL;
pub fn GetCurrentProcess() -> HANDLE;
pub fn GetCurrentThreadId() -> u32;
@@ -436,7 +436,7 @@ extern "system" {
}
#[link(name = "dbghelp")]
-extern "system" {
+unsafe extern "system" {
pub fn MiniDumpWriteDump(
process: HANDLE,
process_id: u32,
diff --git a/tests/windows_minidump_writer.rs b/tests/windows_minidump_writer.rs
index 531f2ae..548f6e8 100644
--- a/tests/windows_minidump_writer.rs
+++ b/tests/windows_minidump_writer.rs
@@ -14,7 +14,7 @@ mod common;
const EXCEPTION_ILLEGAL_INSTRUCTION: i32 = -1073741795;
const STATUS_INVALID_PARAMETER: i32 = -1073741811;
#[link(name = "kernel32")]
-extern "system" {
+unsafe extern "system" {
fn GetCurrentThreadId() -> u32;
}
From 07bca3fd4aa6a0466c87af109a0cffbc2a724d54 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 16:05:14 +0100
Subject: [PATCH 06/13] Remove dependency
std::mem::offset_of! was stabilized in 1.77.0
---
Cargo.lock | 10 ----------
Cargo.toml | 3 ---
src/linux/thread_info/x86.rs | 2 +-
3 files changed, 1 insertion(+), 14 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index d39a081..4d03003 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -1356,15 +1356,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "memoffset"
-version = "0.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "minidump"
version = "0.26.1"
@@ -1439,7 +1430,6 @@ dependencies = [
"log",
"mach2",
"memmap2",
- "memoffset",
"minidump",
"minidump-common",
"minidump-unwind",
diff --git a/Cargo.toml b/Cargo.toml
index 3ecd302..2e8ac35 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,10 +14,7 @@ bitflags = "2.10"
byteorder = "1.4"
cfg-if = "1.0"
crash-context = "0.6"
-error-graph = { version = "0.1.1", features = ["serde"] }
-failspot = "0.2.0"
log = "0.4"
-memoffset = "0.9"
# Type definitions and utilities for working with the Minidump format
minidump-common = "0.26"
# Reading and writing to memory. Keep aligned with version used by minidump-common and goblin
diff --git a/src/linux/thread_info/x86.rs b/src/linux/thread_info/x86.rs
index 55da247..6e9d8b1 100644
--- a/src/linux/thread_info/x86.rs
+++ b/src/linux/thread_info/x86.rs
@@ -187,7 +187,7 @@ impl ThreadInfoX86 {
#[cfg(target_arch = "x86")]
let mut dregs: [libc::c_int; NUM_DEBUG_REGISTERS] = [0; NUM_DEBUG_REGISTERS];
- let debug_offset = memoffset::offset_of!(user, u_debugreg);
+ let debug_offset = std::mem::offset_of!(user, u_debugreg);
let elem_offset = size_of_val(&dregs[0]);
for (idx, dreg) in dregs.iter_mut().enumerate() {
let chunk = Self::peek_user(
From 94caf06d8f5b783a78326ba7112d3d9a1dfdcf53 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 16:06:01 +0100
Subject: [PATCH 07/13] Move several dependencies to be linux only
---
Cargo.toml | 6 ++++--
src/bin/test.rs | 33 ++++++++++++++++++++++++++-------
src/lib.rs | 20 ++++++++++----------
3 files changed, 40 insertions(+), 19 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
index 2e8ac35..bdfc0da 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -11,7 +11,6 @@ license = "MIT"
[dependencies]
bitflags = "2.10"
-byteorder = "1.4"
cfg-if = "1.0"
crash-context = "0.6"
log = "0.4"
@@ -21,7 +20,6 @@ minidump-common = "0.26"
scroll = "0.12"
serde = { version = "1.0.208", features = ["derive"] }
serde_json = "1.0.116"
-tempfile = "3.16"
thiserror = "2.0"
[target.'cfg(unix)'.dependencies]
@@ -31,6 +29,9 @@ goblin = "0.9"
memmap2 = "0.9"
[target.'cfg(any(target_os = "linux", target_os = "android"))'.dependencies]
+byteorder = "1.4"
+error-graph = { version = "0.1.1", features = ["serde"] }
+failspot = "0.2.0"
nix = { version = "0.30", default-features = false, features = [
"mman",
"process",
@@ -60,6 +61,7 @@ failspot = { version = "0.2.0", features = ["enabled"] }
futures = { version = "0.3", features = ["executor"] }
minidump = "0.26"
memmap2 = "0.9"
+tempfile = "3.16"
[target.'cfg(target_os = "macos")'.dev-dependencies]
# We dump symbols for the `test` executable so that we can validate that minidumps
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 3360e49..6a570e4 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -340,14 +340,33 @@ mod linux {
}
fn create_files_wait(num: usize) -> Result<()> {
- let mut file_array = Vec::::with_capacity(num);
+ use std::{fmt::Write, io::Read};
+
+ let mut file_array = Vec::::with_capacity(num);
+
+ let mut rand = std::fs::File::open("/dev/urandom").expect("failed to open /dev/urandom");
+ const CHARS: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+
+ let mut root = std::env::current_dir().expect("failed to get current directory");
+ root.push("target/tmp");
+
+ let mut rand_indices = [0u8; 6];
+
for id in 0..num {
- let file = tempfile::Builder::new()
- .prefix("test_file")
- .suffix::(id.to_string().as_ref())
- .tempfile()
- .unwrap();
- file_array.push(file);
+ let mut name = String::new();
+ name.push_str("test_file");
+
+ rand.read_exact(&mut rand_indices)
+ .expect("failed to read /dev/urandom");
+
+ for index in rand_indices {
+ name.push(CHARS[index as usize % CHARS.len()] as char);
+ }
+
+ write!(&mut name, "{id}").unwrap();
+
+ let path = root.join(name);
+ file_array.push(std::fs::File::create(&path).expect("failed to create path"));
println!("1");
}
println!("1");
diff --git a/src/lib.rs b/src/lib.rs
index 67181b4..baeb1fc 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,6 +2,16 @@ cfg_if::cfg_if! {
if #[cfg(any(target_os = "linux", target_os = "android"))] {
mod linux;
+ failspot::failspot_name! {
+ pub enum FailSpotName {
+ StopProcess,
+ FillMissingAuxvInfo,
+ ThreadName,
+ SuspendThreads,
+ CpuInfoFileOpen,
+ }
+ }
+
pub use linux::*;
} else if #[cfg(target_os = "windows")] {
mod windows;
@@ -20,13 +30,3 @@ pub mod minidump_cpu;
pub mod minidump_format;
mod serializers;
-
-failspot::failspot_name! {
- pub enum FailSpotName {
- StopProcess,
- FillMissingAuxvInfo,
- ThreadName,
- SuspendThreads,
- CpuInfoFileOpen,
- }
-}
From ef24dc8ca0e96966beb1de782780deccddcedac8 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 16:08:23 +0100
Subject: [PATCH 08/13] Remove unneeded vecs
---
src/linux/module_reader.rs | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/src/linux/module_reader.rs b/src/linux/module_reader.rs
index 4841b65..b98524f 100644
--- a/src/linux/module_reader.rs
+++ b/src/linux/module_reader.rs
@@ -648,20 +648,14 @@ mod test {
fn build_id_program_headers() {
let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
let id = reader.build_id_from_program_headers().unwrap();
- assert_eq!(
- id,
- vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
- );
+ assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
}
#[test]
fn build_id_section() {
let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
let id = reader.build_id_from_section().unwrap();
- assert_eq!(
- id,
- vec![1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
- );
+ assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
}
#[test]
@@ -670,7 +664,7 @@ mod test {
let id = reader.build_id_generate_from_text().unwrap();
assert_eq!(
id,
- vec![
+ &[
0x6a, 0x3c, 0x58, 0x31, 0xff, 0x0f, 0x05, 0, 0, 0, 0, 0, 0, 0, 0, 0
]
);
From c7ad49269f58097f324661a23753f0b56ecef1d4 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Fri, 9 Jan 2026 16:15:38 +0100
Subject: [PATCH 09/13] Move module reader tests to be integration
---
src/linux/module_reader.rs | 117 -----------------------------------
tests/linux_module_reader.rs | 59 ++++++++++++++++++
tests/tiny.elf | Bin 0 -> 785 bytes
3 files changed, 59 insertions(+), 117 deletions(-)
create mode 100644 tests/linux_module_reader.rs
create mode 100644 tests/tiny.elf
diff --git a/src/linux/module_reader.rs b/src/linux/module_reader.rs
index b98524f..2eb521e 100644
--- a/src/linux/module_reader.rs
+++ b/src/linux/module_reader.rs
@@ -567,120 +567,3 @@ impl<'buf> ModuleReader<'buf> {
Ok(None)
}
}
-
-#[cfg(test)]
-mod test {
- use super::*;
-
- /// This is a small (but valid) 64-bit little-endian elf executable with the following layout:
- /// * ELF header
- /// * program header: text segment
- /// * program header: note
- /// * program header: dynamic
- /// * section header: null
- /// * section header: .text
- /// * section header: .note.gnu.build-id
- /// * section header: .shstrtab
- /// * section header: .dynamic
- /// * section header: .dynstr
- /// * note header (build id note)
- /// * shstrtab
- /// * dynamic (SONAME/STRTAB/STRSZ)
- /// * dynstr (SONAME string = libfoo.so.1)
- /// * program (calls exit(0))
- const TINY_ELF: &[u8] = &[
- 0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x02, 0x00, 0x3e, 0x00, 0x01, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x40, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 0x03, 0x00, 0x40, 0x00,
- 0x06, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x68, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00,
- 0x01, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x40,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x07, 0x00, 0x00, 0x00, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x68, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0x02, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x02, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0x02,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00,
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x02, 0x40, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xbd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x00, 0x00,
- 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x02,
- 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x04, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x47, 0x4e,
- 0x55, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d,
- 0x0e, 0x0f, 0x10, 0x00, 0x2e, 0x74, 0x65, 0x78, 0x74, 0x00, 0x2e, 0x6e, 0x6f, 0x74, 0x65,
- 0x2e, 0x67, 0x6e, 0x75, 0x2e, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x2d, 0x69, 0x64, 0x00, 0x2e,
- 0x73, 0x68, 0x73, 0x74, 0x72, 0x74, 0x61, 0x62, 0x00, 0x2e, 0x64, 0x79, 0x6e, 0x61, 0x6d,
- 0x69, 0x63, 0x00, 0x2e, 0x64, 0x79, 0x6e, 0x73, 0x74, 0x72, 0x00, 0x0e, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x6c, 0x69, 0x62, 0x66, 0x6f, 0x6f, 0x2e, 0x73, 0x6f, 0x2e, 0x31, 0x00, 0x6a, 0x3c,
- 0x58, 0x31, 0xff, 0x0f, 0x05,
- ];
-
- #[test]
- fn build_id_program_headers() {
- let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
- let id = reader.build_id_from_program_headers().unwrap();
- assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
- }
-
- #[test]
- fn build_id_section() {
- let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
- let id = reader.build_id_from_section().unwrap();
- assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
- }
-
- #[test]
- fn build_id_text_hash() {
- let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
- let id = reader.build_id_generate_from_text().unwrap();
- assert_eq!(
- id,
- &[
- 0x6a, 0x3c, 0x58, 0x31, 0xff, 0x0f, 0x05, 0, 0, 0, 0, 0, 0, 0, 0, 0
- ]
- );
- }
-
- #[test]
- fn soname_program_headers() {
- let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
- let soname = reader.soname_from_program_headers().unwrap();
- assert_eq!(soname, "libfoo.so.1");
- }
-
- #[test]
- fn soname_section() {
- let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
- let soname = reader.soname_from_sections().unwrap();
- assert_eq!(soname, "libfoo.so.1");
- }
-}
diff --git a/tests/linux_module_reader.rs b/tests/linux_module_reader.rs
new file mode 100644
index 0000000..df4e011
--- /dev/null
+++ b/tests/linux_module_reader.rs
@@ -0,0 +1,59 @@
+use minidump_writer::module_reader::*;
+
+/// This is a small (but valid) 64-bit little-endian elf executable with the following layout:
+/// * ELF header
+/// * program header: text segment
+/// * program header: note
+/// * program header: dynamic
+/// * section header: null
+/// * section header: .text
+/// * section header: .note.gnu.build-id
+/// * section header: .shstrtab
+/// * section header: .dynamic
+/// * section header: .dynstr
+/// * note header (build id note)
+/// * shstrtab
+/// * dynamic (SONAME/STRTAB/STRSZ)
+/// * dynstr (SONAME string = libfoo.so.1)
+/// * program (calls exit(0))
+const TINY_ELF: &[u8] = include_bytes!("tiny.elf");
+
+#[test]
+fn build_id_program_headers() {
+ let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
+ let id = reader.build_id_from_program_headers().unwrap();
+ assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
+}
+
+#[test]
+fn build_id_section() {
+ let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
+ let id = reader.build_id_from_section().unwrap();
+ assert_eq!(id, &[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]);
+}
+
+#[test]
+fn build_id_text_hash() {
+ let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
+ let id = reader.build_id_generate_from_text().unwrap();
+ assert_eq!(
+ id,
+ &[
+ 0x6a, 0x3c, 0x58, 0x31, 0xff, 0x0f, 0x05, 0, 0, 0, 0, 0, 0, 0, 0, 0
+ ]
+ );
+}
+
+#[test]
+fn soname_program_headers() {
+ let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
+ let soname = reader.soname_from_program_headers().unwrap();
+ assert_eq!(soname, "libfoo.so.1");
+}
+
+#[test]
+fn soname_section() {
+ let mut reader = ModuleReader::new(TINY_ELF.into()).unwrap();
+ let soname = reader.soname_from_sections().unwrap();
+ assert_eq!(soname, "libfoo.so.1");
+}
diff --git a/tests/tiny.elf b/tests/tiny.elf
new file mode 100644
index 0000000000000000000000000000000000000000..504b544bda3ec3edb6a2c16baa0571bc6aa5478b
GIT binary patch
literal 785
zcmbVJJx{|x41KvYDFpg4Gj(9?Nga?F5V{3e5F1k0h7=N15{aY|OsxE={vZBC1@YM~
zB_k)DpP&7Fv7L{r+iMd9&|`23VoB(Hh%NBt85@Ulgm8#kOWJ;WlaO;-$Bc92lg6Jh
zLr-XK*vXBP2*X5}qUuGCjW`?QM9H8`QS1JQ{y}I?y0O&ioI3YzK7Cu}R7&}Mjn1p{
zPgE$_?fayS%Zk0?(>Os7IAhq^ZvAPSq2Bck-J9;wNo6G1t)EJ*?tg2XS8gRR@a)%g
z>xt7!==(Q!_Xtebi{k#lVRCdl7>>rU&GM~*Evsf}pUSmO*TpKE78z`v*Uf9QNMW=0
sa`93;c&CkFDBq(WLr0s}rV
Date: Mon, 19 Jan 2026 15:01:48 +0100
Subject: [PATCH 10/13] Fix compilation
---
Cargo.lock | 177 +++++++++++++++++------------------
Cargo.toml | 2 +-
tests/linux_module_reader.rs | 2 +
3 files changed, 87 insertions(+), 94 deletions(-)
diff --git a/Cargo.lock b/Cargo.lock
index 4d03003..ba06cd2 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -83,13 +83,12 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50"
[[package]]
name = "async-compression"
-version = "0.4.36"
+version = "0.4.37"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "98ec5f6c2f8bc326c994cb9e241cc257ddaba9afa8555a43cffbb5dd86efaa37"
+checksum = "d10e4f991a553474232bc0a31799f6d24b034a84c0971d80d2e2f78b2e576e40"
dependencies = [
"compression-codecs",
"compression-core",
- "futures-core",
"futures-io",
"pin-project-lite",
"tokio",
@@ -168,7 +167,7 @@ dependencies = [
"minidump-common",
"nom",
"range-map",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"tracing",
]
@@ -251,9 +250,9 @@ checksum = "68ccbd3153aa153b2f5eff557537ffce81e4dd6c50ae0eddc41dc8d0c388436f"
[[package]]
name = "cc"
-version = "1.2.52"
+version = "1.2.53"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cd4932aefd12402b36c60956a4fe0035421f544799057659ff86f923657aada3"
+checksum = "755d2fce177175ffca841e9a06afdb2c4ab0f593d53b4dee48147dfaade85932"
dependencies = [
"find-msvc-tools",
"jobserver",
@@ -281,9 +280,9 @@ checksum = "b0fc239e0f6cb375d2402d48afb92f76f5404fd1df208a41930ec81eda078bea"
[[package]]
name = "compression-codecs"
-version = "0.4.35"
+version = "0.4.36"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0f7ac3e5b97fdce45e8922fb05cae2c37f7bbd63d30dd94821dacfd8f3f2bf2"
+checksum = "00828ba6fd27b45a448e57dbfe84f1029d4c9f26b368157e9a448a5f49a2ec2a"
dependencies = [
"brotli",
"compression-core",
@@ -524,9 +523,9 @@ dependencies = [
[[package]]
name = "dump_syms"
-version = "2.3.5"
+version = "2.3.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b16f31d2e3160010dc6dee38b17c409dd856a96fe0a226d93e936bde539f184d"
+checksum = "94c39740e8d64a6343d46d1d5691b5c8a06a78d8e0f1e8a453230dd4a9436f9a"
dependencies = [
"anyhow",
"bitflags 2.10.0",
@@ -641,9 +640,9 @@ checksum = "37909eebbb50d72f9059c3b6d82c0463f2ff062c9e95845c43a6c9c0355411be"
[[package]]
name = "find-msvc-tools"
-version = "0.1.7"
+version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f449e6c6c08c865631d4890cfacf252b3d396c9bcc83adb6623cdb02a8336c41"
+checksum = "8591b0bcc8a98a64310a2fae1bb3e9b8564dd10e381e6e28010fde8e8e8568db"
[[package]]
name = "flagset"
@@ -653,13 +652,13 @@ checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe"
[[package]]
name = "flate2"
-version = "1.1.5"
+version = "1.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bfe33edd8e85a12a67454e37f8c75e730830d83e313556ab9ebf9ee7fbeb3bfb"
+checksum = "b375d6465b98090a5f25b1c7703f3859783755aa9a80433b36e0379a3ec2f369"
dependencies = [
"crc32fast",
- "libz-rs-sys",
"miniz_oxide",
+ "zlib-rs",
]
[[package]]
@@ -802,9 +801,9 @@ dependencies = [
[[package]]
name = "getrandom"
-version = "0.2.16"
+version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592"
+checksum = "ff2abc00be7fca6ebc474524697ae276ad847ad0a6b3faa4bcb027e9a4614ad0"
dependencies = [
"cfg-if",
"js-sys",
@@ -1188,9 +1187,9 @@ checksum = "72167d68f5fce3b8655487b8038691a3c9984ee769590f93f2a631f4ad64e4f5"
[[package]]
name = "js-sys"
-version = "0.3.83"
+version = "0.3.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8"
+checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3"
dependencies = [
"once_cell",
"wasm-bindgen",
@@ -1224,15 +1223,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "libz-rs-sys"
-version = "0.5.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c10501e7805cee23da17c7790e59df2870c0d4043ec6d03f67d31e2b53e77415"
-dependencies = [
- "zlib-rs",
-]
-
[[package]]
name = "linear-map"
version = "1.2.0"
@@ -1251,7 +1241,7 @@ dependencies = [
"memchr",
"prost",
"prost-derive",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
]
[[package]]
@@ -1263,7 +1253,7 @@ dependencies = [
"bitflags 2.10.0",
"byteorder",
"memchr",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
]
[[package]]
@@ -1330,7 +1320,7 @@ version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bb4bdc8b0ce69932332cf76d24af69c3a155242af95c226b2ab6c2e371ed1149"
dependencies = [
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"zerocopy",
"zerocopy-derive",
]
@@ -1371,7 +1361,7 @@ dependencies = [
"prost",
"range-map",
"scroll 0.12.0",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"time",
"tracing",
"uuid",
@@ -1440,7 +1430,7 @@ dependencies = [
"serde_json",
"similar-asserts",
"tempfile",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"uuid",
]
@@ -1649,7 +1639,7 @@ dependencies = [
"maybe-owned",
"pdb2",
"range-collections 0.4.6",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
]
[[package]]
@@ -1671,7 +1661,7 @@ checksum = "97f6fccfd2d9d2df765ca23ff85fe5cc437fb0e6d3e164e4d3cbe09d14780c93"
dependencies = [
"arrayvec",
"bitflags 2.10.0",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"zerocopy",
"zerocopy-derive",
]
@@ -1812,7 +1802,7 @@ dependencies = [
"rustc-hash",
"rustls",
"socket2",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"tokio",
"tracing",
"web-time",
@@ -1833,7 +1823,7 @@ dependencies = [
"rustls",
"rustls-pki-types",
"slab",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"tinyvec",
"tracing",
"web-time",
@@ -1890,9 +1880,9 @@ dependencies = [
[[package]]
name = "rand_core"
-version = "0.9.3"
+version = "0.9.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38"
+checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c"
dependencies = [
"getrandom 0.3.4",
]
@@ -1950,9 +1940,9 @@ version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a4e608c6638b9c18977b00b475ac1f28d14e84b27d8d42f70e0bf1e3dec127ac"
dependencies = [
- "getrandom 0.2.16",
+ "getrandom 0.2.17",
"libredox",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
]
[[package]]
@@ -2053,7 +2043,7 @@ checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7"
dependencies = [
"cc",
"cfg-if",
- "getrandom 0.2.16",
+ "getrandom 0.2.17",
"libc",
"untrusted",
"windows-sys 0.52.0",
@@ -2061,9 +2051,9 @@ dependencies = [
[[package]]
name = "rustc-demangle"
-version = "0.1.26"
+version = "0.1.27"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "56f7d92ca342cea22a06f2121d944b4fd82af56988c270852495420f961d4ace"
+checksum = "b50b8869d9fc858ce7266cce0194bd74df58b9d0e3f6df3a9fc8eb470d95c09d"
[[package]]
name = "rustc-hash"
@@ -2100,9 +2090,9 @@ dependencies = [
[[package]]
name = "rustls-pki-types"
-version = "1.13.2"
+version = "1.14.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21e6f2ab2928ca4291b86736a8bd920a277a399bba1589409d72154ff87c1282"
+checksum = "be040f8b0a225e40375822a563fa9524378b9d63112f53e19ffff34df5d33fdd"
dependencies = [
"web-time",
"zeroize",
@@ -2110,9 +2100,9 @@ dependencies = [
[[package]]
name = "rustls-webpki"
-version = "0.103.8"
+version = "0.103.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ffdfa2f5286e2247234e03f680868ac2815974dc39e00ea15adc445d0aafe52"
+checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53"
dependencies = [
"ring",
"rustls-pki-types",
@@ -2166,7 +2156,7 @@ dependencies = [
"rustc-demangle",
"scala-native-demangle",
"srcsrv",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"uuid",
"yoke",
"yoke-derive",
@@ -2362,7 +2352,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85cd3e3828fb4dd5ba0e7091777edb6c3db3cd2d6fc10547b29b40f6949a29be"
dependencies = [
"memchr",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
]
[[package]]
@@ -2398,9 +2388,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
[[package]]
name = "symbolic"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "857285fb5f446824e6bc78dc41267d8e544a3ed802ed58aee3445e71968a57c2"
+checksum = "53f95842b7b62712fd9acfc5eb2d5d9d684c0873ca207884a33906964bad15ad"
dependencies = [
"symbolic-cfi",
"symbolic-common",
@@ -2410,9 +2400,9 @@ dependencies = [
[[package]]
name = "symbolic-cfi"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "861d431c83f336f09d027111aac735cd664e8b69e87029834b6db37b1d99c3a9"
+checksum = "326ed0dcf1d9eeb340dcc540f2dda46ce5ec016c28b49dd17c442f3dbc83e4ea"
dependencies = [
"symbolic-common",
"symbolic-debuginfo",
@@ -2421,9 +2411,9 @@ dependencies = [
[[package]]
name = "symbolic-common"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3d8046c5674ab857104bc4559d505f4809b8060d57806e45d49737c97afeb60"
+checksum = "520cf51c674f8b93d533f80832babe413214bb766b6d7cb74ee99ad2971f8467"
dependencies = [
"debugid",
"memmap2",
@@ -2433,9 +2423,9 @@ dependencies = [
[[package]]
name = "symbolic-debuginfo"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e16d3491f94b4f4481b64d59592b5a2d9d17f9843bf264eb743c2de1a811984a"
+checksum = "af6dd2c67c72d424d7d57c0bbcb31a24f86e89c9c9c9419411a1608f9edb00ad"
dependencies = [
"debugid",
"elementtree",
@@ -2466,9 +2456,9 @@ dependencies = [
[[package]]
name = "symbolic-demangle"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1accb6e5c4b0f682de907623912e616b44be1c9e725775155546669dbff720ec"
+checksum = "9f0de2ee0ffa2641e17ba715ad51d48b9259778176517979cb38b6aa86fa7425"
dependencies = [
"cc",
"cpp_demangle",
@@ -2479,9 +2469,9 @@ dependencies = [
[[package]]
name = "symbolic-ppdb"
-version = "12.17.0"
+version = "12.17.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e3e9d30ebe090d47489f02ae126878035fa70022d81229801e32f0f335e0727b"
+checksum = "eeb2e2755539a6a8fb716ce4bc7680179aacc4d72650daf77c1f73fc76d2f0a5"
dependencies = [
"flate2",
"indexmap",
@@ -2507,7 +2497,7 @@ dependencies = [
"http",
"reqwest",
"scopeguard",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"tokio",
]
@@ -2566,11 +2556,11 @@ dependencies = [
[[package]]
name = "thiserror"
-version = "2.0.17"
+version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8"
+checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4"
dependencies = [
- "thiserror-impl 2.0.17",
+ "thiserror-impl 2.0.18",
]
[[package]]
@@ -2586,9 +2576,9 @@ dependencies = [
[[package]]
name = "thiserror-impl"
-version = "2.0.17"
+version = "2.0.18"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913"
+checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5"
dependencies = [
"proc-macro2",
"quote",
@@ -2597,30 +2587,30 @@ dependencies = [
[[package]]
name = "time"
-version = "0.3.44"
+version = "0.3.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91e7d9e3bb61134e77bde20dd4825b97c010155709965fedf0f49bb138e52a9d"
+checksum = "f9e442fc33d7fdb45aa9bfeb312c095964abdf596f7567261062b2a7107aaabd"
dependencies = [
"deranged",
"itoa",
"num-conv",
"powerfmt",
- "serde",
+ "serde_core",
"time-core",
"time-macros",
]
[[package]]
name = "time-core"
-version = "0.1.6"
+version = "0.1.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40868e7c1d2f0b8d73e4a8c7f0ff63af4f6d19be117e90bd73eb1d62cf831c6b"
+checksum = "8b36ee98fd31ec7426d599183e8fe26932a8dc1fb76ddb6214d05493377d34ca"
[[package]]
name = "time-macros"
-version = "0.2.24"
+version = "0.2.25"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30cfb0125f12d9c277f35663a0a33f8c30190f4e4574868a330595412d34ebf3"
+checksum = "71e552d1249bf61ac2a52db88179fd0673def1e1ad8243a00d9ec9ed71fee3dd"
dependencies = [
"num-conv",
"time-core",
@@ -2690,9 +2680,9 @@ dependencies = [
[[package]]
name = "tower"
-version = "0.5.2"
+version = "0.5.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d039ad9159c98b70ecfd540b2573b97f7f52c3e8d9f8ad57a24b916a536975f9"
+checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4"
dependencies = [
"futures-core",
"futures-util",
@@ -2870,9 +2860,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen"
-version = "0.2.106"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd"
+checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566"
dependencies = [
"cfg-if",
"once_cell",
@@ -2883,11 +2873,12 @@ dependencies = [
[[package]]
name = "wasm-bindgen-futures"
-version = "0.4.56"
+version = "0.4.58"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "836d9622d604feee9e5de25ac10e3ea5f2d65b41eac0d9ce72eb5deae707ce7c"
+checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f"
dependencies = [
"cfg-if",
+ "futures-util",
"js-sys",
"once_cell",
"wasm-bindgen",
@@ -2896,9 +2887,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro"
-version = "0.2.106"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3"
+checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608"
dependencies = [
"quote",
"wasm-bindgen-macro-support",
@@ -2906,9 +2897,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-macro-support"
-version = "0.2.106"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40"
+checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55"
dependencies = [
"bumpalo",
"proc-macro2",
@@ -2919,9 +2910,9 @@ dependencies = [
[[package]]
name = "wasm-bindgen-shared"
-version = "0.2.106"
+version = "0.2.108"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4"
+checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12"
dependencies = [
"unicode-ident",
]
@@ -2965,9 +2956,9 @@ dependencies = [
[[package]]
name = "web-sys"
-version = "0.3.83"
+version = "0.3.85"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b32828d774c412041098d182a8b38b16ea816958e07cf40eec2bc080ae137ac"
+checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598"
dependencies = [
"js-sys",
"wasm-bindgen",
@@ -3013,7 +3004,7 @@ dependencies = [
"samply-symbols",
"scopeguard",
"symsrv",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"tokio",
"uuid",
"yoke",
@@ -3319,7 +3310,7 @@ dependencies = [
"flate2",
"indexmap",
"memchr",
- "thiserror 2.0.17",
+ "thiserror 2.0.18",
"zopfli",
]
@@ -3331,9 +3322,9 @@ checksum = "40990edd51aae2c2b6907af74ffb635029d5788228222c4bb811e9351c0caad3"
[[package]]
name = "zmij"
-version = "1.0.12"
+version = "1.0.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fc5a66a20078bf1251bde995aa2fdcc4b800c70b5d92dd2c62abc5c60f679f8"
+checksum = "94f63c051f4fe3c1509da62131a678643c5b6fbdc9273b2b79d4378ebda003d2"
[[package]]
name = "zopfli"
diff --git a/Cargo.toml b/Cargo.toml
index bdfc0da..6976ffc 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -66,7 +66,7 @@ tempfile = "3.16"
[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.2", default-features = false }
+dump_syms = { version = "2.3", default-features = false }
#minidump-processor = { version = "0.25", default-features = false }
minidump-unwind = { version = "0.26", features = ["debuginfo"] }
similar-asserts = "1.6"
diff --git a/tests/linux_module_reader.rs b/tests/linux_module_reader.rs
index df4e011..79c7654 100644
--- a/tests/linux_module_reader.rs
+++ b/tests/linux_module_reader.rs
@@ -1,3 +1,5 @@
+#![cfg(target_os = "linux")]
+
use minidump_writer::module_reader::*;
/// This is a small (but valid) 64-bit little-endian elf executable with the following layout:
From 8902635bf6732a47027c12ea1ee178c2c7c7f230 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Mon, 19 Jan 2026 15:39:44 +0100
Subject: [PATCH 11/13] Fix android tests
---
src/bin/test.rs | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 6a570e4..001d4b4 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -350,6 +350,12 @@ mod linux {
let mut root = std::env::current_dir().expect("failed to get current directory");
root.push("target/tmp");
+ if cfg!(target_os = "android") {
+ if !root.exists() {
+ std::fs::create_dir_all(&root).expect("failed to create target/tmp dir")
+ }
+ }
+
let mut rand_indices = [0u8; 6];
for id in 0..num {
From 1bfc0453597ee12fbcfe004085fbff918a2911d3 Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Mon, 19 Jan 2026 15:42:07 +0100
Subject: [PATCH 12/13] Fix lint
---
src/bin/test.rs | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 001d4b4..5f48c94 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -350,10 +350,8 @@ mod linux {
let mut root = std::env::current_dir().expect("failed to get current directory");
root.push("target/tmp");
- if cfg!(target_os = "android") {
- if !root.exists() {
- std::fs::create_dir_all(&root).expect("failed to create target/tmp dir")
- }
+ if cfg!(target_os = "android") && !root.exists() {
+ std::fs::create_dir_all(&root).expect("failed to create target/tmp dir")
}
let mut rand_indices = [0u8; 6];
From f76f22ea0b414280178b9492f9e8171ad70e1c0a Mon Sep 17 00:00:00 2001
From: Jake Shadle
Date: Mon, 19 Jan 2026 15:53:19 +0100
Subject: [PATCH 13/13] Use global temporary directory
---
src/bin/test.rs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/bin/test.rs b/src/bin/test.rs
index 5f48c94..c42ff7f 100644
--- a/src/bin/test.rs
+++ b/src/bin/test.rs
@@ -347,11 +347,11 @@ mod linux {
let mut rand = std::fs::File::open("/dev/urandom").expect("failed to open /dev/urandom");
const CHARS: &[u8] = b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
- let mut root = std::env::current_dir().expect("failed to get current directory");
- root.push("target/tmp");
+ let mut root = std::env::temp_dir();
+ root.push("minidump-writer");
- if cfg!(target_os = "android") && !root.exists() {
- std::fs::create_dir_all(&root).expect("failed to create target/tmp dir")
+ if !root.exists() {
+ std::fs::create_dir_all(&root).expect("failed to create $TMP/minidump-writer dir")
}
let mut rand_indices = [0u8; 6];