mirror of
https://github.com/vee1e/naksheap.git
synced 2026-09-01 10:18:37 +00:00
Rust workspace that turns a core dump of a stripped, optimized C/C++ binary into a typed heap object graph: objects, sizes, allocator state, references, and probable struct layouts, all without debug info. - glibc ptmalloc carving (main + thread arenas, tcache/fastbin freed state, mmap allocations), ELF core + memory-list minidump parsing - pointer scan, layout clustering, vtable/string/vector detection, confidence + evidence on every node - ASCII/JSON/Graphviz/HTML output, synthetic fixtures with ground truth, and real-dump validation harness (aarch64 glibc 2.39) in scripts/ - web deployment reference stack in deploy/ MIT OR Apache-2.0
563 lines
14 KiB
TOML
563 lines
14 KiB
TOML
# This file is automatically @generated by Cargo.
|
|
# It is not intended for manual editing.
|
|
version = 4
|
|
|
|
[[package]]
|
|
name = "adler2"
|
|
version = "2.0.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
|
|
|
|
[[package]]
|
|
name = "anstream"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d"
|
|
dependencies = [
|
|
"anstyle",
|
|
"anstyle-parse",
|
|
"anstyle-query",
|
|
"anstyle-wincon",
|
|
"colorchoice",
|
|
"is_terminal_polyfill",
|
|
"utf8parse",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle"
|
|
version = "1.0.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000"
|
|
|
|
[[package]]
|
|
name = "anstyle-parse"
|
|
version = "1.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e"
|
|
dependencies = [
|
|
"utf8parse",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle-query"
|
|
version = "1.1.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "40c48f72fd53cd289104fc64099abca73db4166ad86ea0b4341abe65af83dadc"
|
|
dependencies = [
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anstyle-wincon"
|
|
version = "3.0.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "291e6a250ff86cd4a820112fb8898808a366d8f9f58ce16d1f538353ad55747d"
|
|
dependencies = [
|
|
"anstyle",
|
|
"once_cell_polyfill",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "anyhow"
|
|
version = "1.0.104"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470"
|
|
|
|
[[package]]
|
|
name = "bitflags"
|
|
version = "2.13.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da"
|
|
|
|
[[package]]
|
|
name = "cfg-if"
|
|
version = "1.0.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
|
|
|
|
[[package]]
|
|
name = "clap"
|
|
version = "4.6.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "473c7e07f409a8d772161724aa8db6a765a2532a70f9667eeb7b49d3d02fbdca"
|
|
dependencies = [
|
|
"clap_builder",
|
|
"clap_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_builder"
|
|
version = "4.6.6"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7b48fea5a88e9ae728a2dcbedbfc0e730f7d60da42e1cb049a83c9fb8b789889"
|
|
dependencies = [
|
|
"anstream",
|
|
"anstyle",
|
|
"clap_lex",
|
|
"strsim",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_derive"
|
|
version = "4.6.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d012d2b9d65aca7f18f4d9878a045bc17899bba951561ba5ec3c2ba1eed9a061"
|
|
dependencies = [
|
|
"heck",
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "clap_lex"
|
|
version = "1.1.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9"
|
|
|
|
[[package]]
|
|
name = "colorchoice"
|
|
version = "1.0.5"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570"
|
|
|
|
[[package]]
|
|
name = "crc32fast"
|
|
version = "1.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9481c1c90cbf2ac953f07c8d4a58aa3945c425b7185c9154d67a65e4230da511"
|
|
dependencies = [
|
|
"cfg-if",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-deque"
|
|
version = "0.8.7"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "5181e0de7b61eb03a81e347d6dd8797bae9da5146707b51077e2d71a54ec0ceb"
|
|
dependencies = [
|
|
"crossbeam-epoch",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-epoch"
|
|
version = "0.9.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2d6914041f254d6e9176c01941b21115dcfb7089e55135a35411081bd106ef3f"
|
|
dependencies = [
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "crossbeam-utils"
|
|
version = "0.8.22"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "61803da095bee82a81bb1a452ecc25d3b2f1416d1897eb86430c6159ef717c17"
|
|
|
|
[[package]]
|
|
name = "either"
|
|
version = "1.17.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9e5e8f6c15a24b9a3ee5efec809ccd006d3b30e8b3bb63c39af737c7f87daa1d"
|
|
|
|
[[package]]
|
|
name = "errno"
|
|
version = "0.3.14"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb"
|
|
dependencies = [
|
|
"libc",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "fastrand"
|
|
version = "2.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
|
|
|
|
[[package]]
|
|
name = "flate2"
|
|
version = "1.1.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "843fba2746e448b37e26a819579957415c8cef339bf08564fe8b7ddbd959573c"
|
|
dependencies = [
|
|
"crc32fast",
|
|
"miniz_oxide",
|
|
]
|
|
|
|
[[package]]
|
|
name = "getrandom"
|
|
version = "0.4.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "300e883d756b2e4ec94e02791f39b04b522276138852cfc41d9fb7e904106099"
|
|
dependencies = [
|
|
"cfg-if",
|
|
"libc",
|
|
"r-efi",
|
|
]
|
|
|
|
[[package]]
|
|
name = "heck"
|
|
version = "0.5.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
|
|
|
|
[[package]]
|
|
name = "is_terminal_polyfill"
|
|
version = "1.70.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a6cb138bb79a146c1bd460005623e142ef0181e3d0219cb493e02f7d08a35695"
|
|
|
|
[[package]]
|
|
name = "itoa"
|
|
version = "1.0.18"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682"
|
|
|
|
[[package]]
|
|
name = "libc"
|
|
version = "0.2.189"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
|
|
|
|
[[package]]
|
|
name = "linux-raw-sys"
|
|
version = "0.12.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
|
|
|
|
[[package]]
|
|
name = "memchr"
|
|
version = "2.8.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
|
|
|
|
[[package]]
|
|
name = "memmap2"
|
|
version = "0.9.11"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0"
|
|
dependencies = [
|
|
"libc",
|
|
]
|
|
|
|
[[package]]
|
|
name = "miniz_oxide"
|
|
version = "0.8.9"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fa76a2c86f704bdb222d66965fb3d63269ce38518b83cb0575fca855ebb6316"
|
|
dependencies = [
|
|
"adler2",
|
|
"simd-adler32",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-allocator-heuristics"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"naksheap-core-parse",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-cli"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"anyhow",
|
|
"clap",
|
|
"naksheap-allocator-heuristics",
|
|
"naksheap-core-parse",
|
|
"naksheap-inference",
|
|
"naksheap-pointer-scan",
|
|
"naksheap-testkit",
|
|
"naksheap-viz",
|
|
"serde_json",
|
|
"tempfile",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-core-parse"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"memmap2",
|
|
"object",
|
|
"serde",
|
|
"thiserror",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-inference"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"naksheap-allocator-heuristics",
|
|
"naksheap-core-parse",
|
|
"naksheap-pointer-scan",
|
|
"naksheap-testkit",
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-pointer-scan"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"naksheap-allocator-heuristics",
|
|
"naksheap-core-parse",
|
|
"rayon",
|
|
"serde",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-testkit"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"naksheap-allocator-heuristics",
|
|
"naksheap-core-parse",
|
|
"serde",
|
|
"serde_json",
|
|
"tempfile",
|
|
"thiserror",
|
|
]
|
|
|
|
[[package]]
|
|
name = "naksheap-viz"
|
|
version = "0.1.0"
|
|
dependencies = [
|
|
"naksheap-allocator-heuristics",
|
|
"naksheap-core-parse",
|
|
"naksheap-inference",
|
|
"naksheap-pointer-scan",
|
|
"naksheap-testkit",
|
|
"serde",
|
|
"serde_json",
|
|
]
|
|
|
|
[[package]]
|
|
name = "object"
|
|
version = "0.40.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "dd229a0361b9d0d4396176e02d65897f487eebeab7caa6d443855ee152ca0b9c"
|
|
dependencies = [
|
|
"flate2",
|
|
"memchr",
|
|
"ruzstd",
|
|
]
|
|
|
|
[[package]]
|
|
name = "once_cell"
|
|
version = "1.21.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
|
|
|
|
[[package]]
|
|
name = "once_cell_polyfill"
|
|
version = "1.70.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe"
|
|
|
|
[[package]]
|
|
name = "proc-macro2"
|
|
version = "1.0.107"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
|
|
dependencies = [
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "quote"
|
|
version = "1.0.47"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
]
|
|
|
|
[[package]]
|
|
name = "r-efi"
|
|
version = "6.0.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf"
|
|
|
|
[[package]]
|
|
name = "rayon"
|
|
version = "1.12.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "fb39b166781f92d482534ef4b4b1b2568f42613b53e5b6c160e24cfbfa30926d"
|
|
dependencies = [
|
|
"either",
|
|
"rayon-core",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rayon-core"
|
|
version = "1.13.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "22e18b0f0062d30d4230b2e85ff77fdfe4326feb054b9783a3460d8435c8ab91"
|
|
dependencies = [
|
|
"crossbeam-deque",
|
|
"crossbeam-utils",
|
|
]
|
|
|
|
[[package]]
|
|
name = "rustix"
|
|
version = "1.1.4"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
|
|
dependencies = [
|
|
"bitflags",
|
|
"errno",
|
|
"libc",
|
|
"linux-raw-sys",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "ruzstd"
|
|
version = "0.9.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "a252f5e20f038fe7b4ea53e073e65398d652c864cc162fc77c56c2f13717b888"
|
|
dependencies = [
|
|
"twox-hash",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
|
|
dependencies = [
|
|
"serde_core",
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_core"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
|
|
dependencies = [
|
|
"serde_derive",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_derive"
|
|
version = "1.0.229"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "serde_json"
|
|
version = "1.0.151"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "c841b55ecdae098c80dcae9cf767f6f8a0c2cdb3416bbef72181df4d0fe73f14"
|
|
dependencies = [
|
|
"itoa",
|
|
"memchr",
|
|
"serde",
|
|
"serde_core",
|
|
"zmij",
|
|
]
|
|
|
|
[[package]]
|
|
name = "simd-adler32"
|
|
version = "0.3.10"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
|
|
|
|
[[package]]
|
|
name = "strsim"
|
|
version = "0.11.1"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
|
|
|
|
[[package]]
|
|
name = "syn"
|
|
version = "3.0.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"unicode-ident",
|
|
]
|
|
|
|
[[package]]
|
|
name = "tempfile"
|
|
version = "3.27.0"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
|
|
dependencies = [
|
|
"fastrand",
|
|
"getrandom",
|
|
"once_cell",
|
|
"rustix",
|
|
"windows-sys",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror"
|
|
version = "2.0.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ec86235f5fcc2a73650310756d2ac5b138a5780bbbdfae3eeccec992c435ba4f"
|
|
dependencies = [
|
|
"thiserror-impl",
|
|
]
|
|
|
|
[[package]]
|
|
name = "thiserror-impl"
|
|
version = "2.0.20"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "bc04cd3e1236dd4a98afca4569f2deb3f120e5422a4023be2cb683f8486292af"
|
|
dependencies = [
|
|
"proc-macro2",
|
|
"quote",
|
|
"syn",
|
|
]
|
|
|
|
[[package]]
|
|
name = "twox-hash"
|
|
version = "2.1.3"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "8464ec13c3691491391d9fce00f6416c9a48e46972f72d7865688be2080192c9"
|
|
|
|
[[package]]
|
|
name = "unicode-ident"
|
|
version = "1.0.24"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75"
|
|
|
|
[[package]]
|
|
name = "utf8parse"
|
|
version = "0.2.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
|
[[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.61.2"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "ae137229bcbd6cdf0f7b80a31df61766145077ddf49416a728b02cb3921ff3fc"
|
|
dependencies = [
|
|
"windows-link",
|
|
]
|
|
|
|
[[package]]
|
|
name = "zmij"
|
|
version = "1.0.23"
|
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
|