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
//! [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, sourcemap //! handling for minified JavaScript 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 //! - Basic token mapping //! - Heuristics to find original function names based on minified sources //! - Indexed sourcemap to sourcemap merging //! - Proguard function mappings (via `symbolic-cabi` only, use `proguard` crate instead) //! - Minidump / Breakpad processing //! - Generate Breakpad symbol files from Mach, ELF and PDBs //! - Process Minidumps to retrieve stack traces //! - 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: //! //! - **`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. //! - **`minidump`**: Rust bindings for the Breakpad Minidump processor. Additionally, this includes //! facilities to extract stack unwinding information (sometimes called CFI) from object files. //! This feature requires a C++11 compiler on the PATH. //! - **`sourcemap`**: Processing and expansion of JavaScript source maps, as well as lookups for //! minified function names. //! - **`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`** //! - **`minidump-serde`** //! - **`unreal-serde`** #![warn(missing_docs)] #[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)] #[cfg(feature = "minidump")] pub use symbolic_minidump as minidump; #[doc(inline)] #[cfg(feature = "sourcemap")] pub use symbolic_sourcemap as sourcemap; #[doc(inline)] #[cfg(feature = "symcache")] pub use symbolic_symcache as symcache; #[doc(inline)] #[cfg(feature = "unreal")] pub use symbolic_unreal as unreal;