1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
//! [Symbolic](https://docs.rs/symbolic) is a library written in Rust which is used at
//! [Sentry](https://sentry.io/) 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, use `sourcemap` crate instead)
//! - Proguard function mappings (via `symbolic-cabi` only, use `proguard` 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.
#![warn(missing_docs)]
#[doc(inline)]
#[cfg(feature = "cfi")]
pub use symbolic_cfi as cfi;
#[doc(inline)]
pub use symbolic_common as common;
#[doc(inline)]
#[cfg(feature = "debuginfo")]
pub use symbolic_debuginfo as debuginfo;
#[doc(inline)]
#[cfg(feature = "demangle")]
pub use symbolic_demangle as demangle;
#[doc(inline, hidden)]
#[cfg(feature = "il2cpp")]
pub use symbolic_il2cpp as il2cpp;
#[doc(inline, hidden)]
#[cfg(feature = "ppdb")]
pub use symbolic_ppdb as ppdb;
#[doc(inline)]
#[cfg(feature = "sourcemapcache")]
pub use symbolic_sourcemapcache as sourcemapcache;
#[doc(inline)]
#[cfg(feature = "symcache")]
pub use symbolic_symcache as symcache;
#[doc(inline)]
#[cfg(feature = "unreal")]
pub use symbolic_unreal as unreal;