Expand description
Symbolic is a library written in Rust which is used at Sentry to implement symbolication of native stack traces and more. It consists of multiple largely independent crates which are bundled together into a C and Python library so it can be used independently of Rust.
§What’s in the package
Symbolic provides the following functionality:
- Symbolication based on custom cache files (symcache)
- Symbol cache file generators from:
- Mach, ELF and PE symbol tables
- Mach and ELF embedded DWARF data
- PDB CodeView debug information
- Breakpad symbol files
- Demangling support
- C++ (GCC, clang and MSVC)
- Objective C / Objective C++
- Rust
- Swift
- JavaScript sourcemap expansion (via
symbolic-cabi
only, usesourcemap
crate instead) - Proguard function mappings (via
symbolic-cabi
only, useproguard
crate instead) - Breakpad processing
- Generate Breakpad symbol files from Mach, ELF and PDBs
- Convenient C and Python library
- Processing of Unreal Engine 4 native crash reports
- Extract and process minidumps
- Expose logs and UE4 context information
§Usage
Add symbolic
as a dependency to your Cargo.toml
. You will most likely want to activate some
of the features:
cfi
: Facilities to extract stack unwinding information (sometimes called CFI) from object files.debuginfo
(default): Contains support for various object file formats and debugging information. Currently, this comprises MachO and ELF (with DWARF debugging), PE and PDB, as well as Breakpad symbols.demangle
: Demangling for Rust, C++, Swift and Objective C symbols. This feature requires a C++14 compiler on the PATH.symcache
: An optimized, platform-independent storage for common debugging information. This allows blazing fast symbolication of instruction addresses to function names and file locations.unreal
: Processing of Unreal Engine 4 crash reports.
There are also alternate versions for some of the above features that additionally add
implementations for serde::{Deserialize, Serialize}
on suitable types:
common-serde
debuginfo-serde
unreal-serde
§Minimal Rust Version
This crate is known to require at least Rust 1.41.
Modules§
- cfi
- Handling of Call Frame Information (stack frame info).
- common
- Common functionality for
symbolic
. - debuginfo
- Abstractions for dealing with object files and debug information.
- demangle
- Demangling support for various languages and compilers.
- sourcemapcache
- A fast lookup cache for SourceMaps.
- symcache
- Provides SymCache support.
- unreal
- API to process Unreal Engine 4 crashes.