[package]
edition = "2021"
rust-version = "1.75"
name = "blazesym"
version = "0.2.3"
authors = [
"Daniel Müller <deso@posteo.net>",
"Kui-Feng <thinker.li@gmail.com>",
]
build = "build.rs"
exclude = ["data/kallsyms.xz"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "blazesym is a library for address symbolization and related tasks."
homepage = "https://github.com/libbpf/blazesym"
documentation = "https://docs.rs/blazesym"
readme = "README.md"
keywords = [
"dwarf",
"elf",
"gsym",
"stacktrace",
"tracing",
]
categories = [
"algorithms",
"api-bindings",
"development-tools::debugging",
"os::unix-apis",
"value-formatting",
]
license = "BSD-3-Clause"
repository = "https://github.com/libbpf/blazesym"
[package.metadata.docs.rs]
features = [
"apk",
"backtrace",
"breakpad",
"demangle",
"dwarf",
"gsym",
]
rustdoc-args = [
"--cfg",
"docsrs",
]
[features]
apk = []
backtrace = []
bpf = []
breakpad = ["dep:nom"]
default = [
"backtrace",
"demangle",
"dwarf",
"zlib",
]
demangle = [
"dep:cpp_demangle",
"dep:rustc-demangle",
]
dwarf = ["dep:gimli"]
gsym = []
nightly = []
test = []
tracing = ["dep:tracing"]
xz = ["dep:xz2"]
zlib = ["dep:miniz_oxide"]
zstd = ["dep:zstd"]
[lib]
name = "blazesym"
path = "src/lib.rs"
[[example]]
name = "addr2ln"
path = "examples/addr2ln.rs"
[[example]]
name = "addr2ln_pid"
path = "examples/addr2ln_pid.rs"
[[example]]
name = "backtrace"
path = "examples/backtrace.rs"
[[example]]
name = "inspect-mangled"
path = "examples/inspect-mangled.rs"
required-features = [
"demangle",
"blazesym-dev/generate-unit-test-files",
]
[[example]]
name = "normalize-virt-offset"
path = "examples/normalize-virt-offset.rs"
[[test]]
name = "allocs"
path = "tests/allocs.rs"
[[test]]
name = "integration"
path = "tests/integration.rs"
required-features = ["test"]
[[bench]]
name = "main"
path = "benches/main.rs"
harness = false
required-features = ["test"]
[dependencies.cpp_demangle]
version = "0.5"
optional = true
[dependencies.gimli]
version = "0.32"
optional = true
[dependencies.libc]
version = "0.2"
[dependencies.memmap2]
version = "0.9"
default-features = false
[dependencies.miniz_oxide]
version = "0.9"
features = [
"simd",
"with-alloc",
]
optional = true
default-features = false
[dependencies.nom]
version = "7"
optional = true
[dependencies.rustc-demangle]
version = "0.1"
optional = true
[dependencies.tracing]
version = "0.1"
features = ["attributes"]
optional = true
default-features = false
[dependencies.xz2]
version = "0.1.7"
optional = true
default-features = false
[dependencies.zstd]
version = "0.13"
optional = true
default-features = false
[dev-dependencies.addr2line]
version = "=0.25.1"
[dev-dependencies.anyhow]
version = "1.0"
[dev-dependencies.criterion]
version = "0.8"
features = [
"rayon",
"cargo_bench_support",
]
default-features = false
[dev-dependencies.rand]
version = "0.9"
features = [
"std",
"thread_rng",
]
default-features = false
[dev-dependencies.scopeguard]
version = "1.2"
[dev-dependencies.stats_alloc]
version = "0.1.1"
features = ["nightly"]
[dev-dependencies.tempfile]
version = "3"
[dev-dependencies.test-fork]
version = "0.1"
[dev-dependencies.test-log]
version = "0.2"
features = ["trace"]
default-features = false
[dev-dependencies.test-tag]
version = "0.1"
[target.'cfg(target_os = "linux")'.dev-dependencies]
[lints.clippy]
absolute-paths = "warn"
allow-attributes = "warn"
clone-on-ref-ptr = "warn"
collapsible-else-if = "allow"
collapsible-if = "allow"
dbg-macro = "warn"
doc-markdown = "warn"
fn-to-numeric-cast = "allow"
join-absolute-paths = "warn"
large-enum-variant = "warn"
let-and-return = "allow"
let-unit-value = "allow"
module-inception = "allow"
redundant-closure-for-method-calls = "warn"
type-complexity = "allow"
unchecked-duration-subtraction = "warn"
uninlined-format-args = "warn"
wildcard-imports = "warn"
[lints.rust]
deprecated-safe = "warn"
future-incompatible = "warn"
keyword-idents = "warn"
let-underscore = "warn"
missing-debug-implementations = "warn"
missing-docs = "warn"
trivial-numeric-casts = "warn"
unsafe-op-in-unsafe-fn = "warn"
unused = "warn"
[lints.rust.unexpected_cfgs]
level = "warn"
priority = 0
check-cfg = [
"cfg(has_procmap_query_ioctl)",
"cfg(has_large_test_files)",
]
[profile.bench]
lto = false
codegen-units = 256
[profile.release]
opt-level = 3
lto = true
codegen-units = 1
debug = 2