NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
crates.io · #1090 most downloaded on crates.io
A library to demangle symbols from various languages and compilers.
Last release 2 months ago
23 Jul 2026
Ships fairly regularly
a new release about every 2 weeks
Nearly every release is documented
notes for 56 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
9 years old
166 releases · first in 2017
Nothing published for this version
Add sourcelink functionality to symbolic-common
Add some mypy typing to symbolic
Features
One column per quarter.
Require python 3.8+ for python bindings
Updating
sourcemapcache: Improved scope name resolution.
Fixes:
Optimize SourceBundle/DebugSession
Fixes:
Correctly resolve sourceMappingURL references for "source" files.
Fixes:
sourceMappingURL references for "source" files.DebugId of a PS4 executable.PPDB files report has_sources() = true even when they only contain source links
Skip hidden sequence points when creating PortablePDB cache.
Features:
Replace internal usage of LazyCell by OnceCell and make SourceBundleDebugSession: Send, Sync and AsSelf.
Features:
LazyCell by OnceCell and make SourceBundleDebugSession: Send, Sync and AsSelf. (#767)Added debug IDs to source bundle JavaScript files and source maps.
Features:
Breaking changes:
DebugSession::source_by_path() to return a SourceFileDescriptor containing either file content or a URL to fetch it from. (#758,#762)SourceBundleWriter::write_object_with_filter() filter callback to take SourceFileDescriptor, allowing to include/exclude embedded sources. (#764,#762)Fixes:
PortablePdb streams in the correct order. (#760)Correctly read the debug_id of Deterministic PE files
Discard invalid line records and inlinees when parsing functions.
Fixes:
Features:
PortablePdbDebugSession now returns files referenced in the Portable PDB file. (#729)PortablePdbDebugSession now returns source files embedded in the Portable PDB file. (#734)symbolic_common::AsSelf for SourceMapCache (#742)Breaking changes:
FileInfo and the compilation_dir field on FileEntry are now private. (#729)PortablePdbDebugSession now has a lifetime parameter. (#729)PeDebugSession placeholder has been removed. (#744)Thank you:
Features, fixes and improvements in this release have been contributed by:
PortablePdbCache now implements Clone, PartialEq, Eq, and AsSelf. (#726, #727)
Add inlinee overlap checks in symbolic-debuginfo.
Update js-source-scopes to 0.3.0.
Internal
js-source-scopes to 0.3.0. (#715)Update js-source-scopes to 0.2.2.
Internal
js-source-scopes to 0.2.2. (#714)Python/CABI bindings will use a tempfile instead of holding SourceMapCache in memory.
Internal
SourceMapCache in memory. (#711)Updated goblin, cpp_demangle and wasmparser dependencies.
Internal
goblin, cpp_demangle and wasmparser dependencies. (#709)Rebuild C headers for SourceMapCache to expose token name
Fixed:
SourceMapCache to expose token name (#704)Add name to SourceMapCacheToken Python bindings
Features:
name to SourceMapCacheToken Python bindings (#703)Added an Object type for Portable PDB files.
Fixed a bug in Unreal Engine log parsing by updating the anylog dependency.
Fixes:
anylog dependency. (#695)Added a new sub-crate for working with JavaScript SourceMaps: symbolic-sourcemapcache.
Features:
symbolic-sourcemapcache. (#688)symbolic-ppdb incorporated into symbolic (behind the ppdb feature flag) (#687)Internal:
watto library for de/serialization of symcache and ppdbcache. (#670)Be more lenient when eagerly parsing DWARF Abbreviations.
Fixes:
Abbreviations. (#685)Be stricter about demangling only _Z prefixed C++ names.
Correctly resolve the DW_AT_producer attribute of DWARF files
Allow underflows in Windows x64 CFI to allow restoring registers from outside of the current stack frame.
Fixes:
.debug_addr section needed for DWARF5. (#652)Internal:
Thank you:
Features, fixes and improvements in this release have been contributed by:
Added a new subcrate for working with Portable PDB files: symbolic-ppdb
Features:
symbolic-ppdb (#621)INLINE_ORIGIN and INLINE records. (#605)Fixes:
addrx parsing which caused incorrect address ranges. (#608)Undeprecated Function and Functions.
Breaking changes:
debugid dependency to 0.8.uuid dependency to 1.0.pdb dependency to 0.8.symbolic_common::CpuFamily::cfi_register_name.symbolic-minidump crate has been dropped. The CFI functionality that was contained in
symbolic-minidump now resides in its own crate, symbolic-cfi.symbolic-unwind crate has been dropped.symbolic-sourcemap crate has been dropped. Since it was only used in symbolic-cabi, its
functionality has been incorporated into symbolic-cabi.symbolic-symcache:
SymCacheWriter.SymCacheError.SymCacheErrorKind.Line.Lines.LineInfo.Lookup.Function::id.Function::parent_id.Function::address.Function::symbol.Function::compilation_dir.Function::lines.SymCache::has_line_info.SymCache::has_file_info.Function::name to string slice.SymCache::lookup to SourceLocations.Function::name_for_demangling with the previous signature and behavior of Function::name.Function::entry_pc.SymCacheConverter.Error.ErrorKind.File.Files.FilesDebug.FunctionsDebug.SourceLocation.SourceLocations.SymCache::files.Transformers.Function and Functions.SymCache::functions.symbolic-cabi::minidump and the corresponding Python functionality has been removed. The
CFI functionality that was contained therein now resides in symbolic-cabi::cfi and symbolic.cfi,
respectively.symbolic-cabi::unreal and the corresponding Python functionality has been removed.symbolic-cabi::symcache::SymbolicLineInfo has been replaced with SymbolicSourceLocation,
which has a different interface. Likewise, symbolic.symcache.LineInfo has been replaced with
SourceLocation.symbolic-cabi::symcache::symbolic_symcache_has_file_info and symbolic_symcache_has_line_info
have been removed, likewise for symbolic.symcache.SymCache.has_line_info and has_file_info.Optionally collect referenced C# file sources when creating a source bundle.
Make CFI generation for Windows x64 more accurate, restoring all possible registers and supporting frame pointer unwinding.
Fixes:
Make sure to correctly parse Unreal crash reports with zero-length files
Fixes:
Updated wasmparser dependency to 0.83.0
Fixes:
0.83.0 (#557)function_size when dealing with split functions (#522)Thank you:
Features, fixes and improvements in this release have been contributed by:
Added a new SymCache Transformer, which can be used to apply Function or SourceLocation transformations.
Features:
Transformer, which can be used to apply Function or SourceLocation transformations. (#496)Fixes:
STACK WIN records being written correctly. (#513)Thank you:
Features, fixes and improvements in this release have been contributed by:
Update goblin which received fixes to avoid panics and unreasonable memory allocations based on invalid input.
Fixes:
goblin which received fixes to avoid panics and unreasonable memory allocations based on invalid input. (#503)0 instead of ignoring all following sections. This bug may have lead to missing unwind or debug information. (#505)gold. (#505)Added a new SymCache binary format which is fundamentally based around instruction addr ranges.
Features:
ElfObject::debug_link that allows recovering the debug link from an Elf if present. (#450)symbolic-debuginfo feature flags. (#470)Fixes:
Thank you:
Features, fixes and improvements in this release have been contributed by:
Add ByteView::map_file_ref constructor which does not consume the File passed to it.
Add Unreal4Crash::parse_with_limit which allows specifying a maximum allocation size when extracting compressed UE4 crash archives.
Build and publish binary wheels for arm64 / aarch64 on macOS and Linux.
Avoid panic when looking for hex suffixes in multibyte character strings in the demangler.
Fixes:
.framework.dSYM. (#425)Thank you:
Features, fixes and improvements in this release have been contributed by:
Write versioned CFI Cache files. Reading those files is only supported with symbolic versions >= 8.2.1, so trying to use a CFI Cache file with an olde
Features:
>= 8.2.1, so trying to use a CFI Cache file with an older version of symbolic will fail with a CfiErrorKind::BadFileMagic error.Fixes:
inline parent offset overflows.Add support for reading versioned CFI Cache files.
Features:
Fixes:
Thank you:
Features, fixes and improvements in this release have been contributed by:
This did add new variants to the BreakpadStackWinRecordType enum. Technically a _breaking change_, but we do not consider the Breakpad Parser types as…
Caution:
gimli, goblim, and wasm-related libraries were updated.Features:
Bug Fixes:
STACK WIN record types are being parsed correctly. This did add new variants to the BreakpadStackWinRecordType enum. Technically a breaking change, but we do not consider the Breakpad Parser types as adhering to strict SemVer rules.Thank you:
Features, fixes and improvements in this release have been contributed by:
Add support for loading BCSymbolMaps into MachObjects to un-obfuscate symbol names in bitcode builds.
Fix detecting hidden Swift symbols in MachObject::requires_symbolmap. Additionally, the MachO symbol iterator no longer strips underscores from __hidd
Bug Fixes:
MachObject::requires_symbolmap. Additionally, the MachO symbol iterator no longer strips underscores from __hidden# symbols. (#316)Manylinux2010 has dropped support for Python 2.7. As a result, we're no longer building or testing the Python package with Python 2.7. This and future
Manylinux2010 has dropped support for Python 2.7. As a result, we're no longer building or testing the Python package with Python 2.7. This and future releases require at least Python 3.6.
Bug Fixes:
Support DWARF information from MIPS compilers in SHT_MIPS_DWARF sections.
Include third-party submodules to allow the Python sdist to build again.
Bug Fixes:
sdist to build again. (#310)Compute correct debug identifiers when proessing a Minidump from a machine with opposite endianness. This particularly allows to process MIPS minidump
Bug Fixes:
Deprecated APIs have been removed:
Breaking Changes:
failure was removed, and all error types were changed to only implement std::error::Error and related traits.symbolic-proguard was removed in favor of the proguard crate. Proguard is still supported via symbolic-cabi and the python API however.InstructionInfo's fields are no longer public.pointer_size, instruction_alignment and ip_register_name have moved from Arch to CpuFamily.Arch::register_name as been moved to CpuFamily::cfi_register_name.Dwarf::raw_data and Dwarf::section_data have been replaced with the raw_section and section APIs.Unreal4ContextRuntimeProperties::misc_primary_cpu_brand is has been removed.CodeModule.id and CodeModule.name Use debug_id and code_file, respectively.DemangleFormat and public fields of DemangleOptions have been removed in favor of builder methods on DemangleOptions.Name::new now takes both the NameMangling state, and the Language explicitly.Features:
Bug Fixes:
This is temporarily solved with a statically verified unsafe transmute, which will be replaced in an upcoming breaking change.
Changes:
EngineData and GameData). (#257)non_exhaustive. (#256)Bug Fixes:
Field access on InstructionInfo has been deprecated and replaced with a builder.
Deprecations:
pointer_size, instruction_alignment and ip_register_name have moved from Arch to CpuFamily.Arch::register_name as been moved to CpuFamily::cfi_register_name.InstructionInfo has been deprecated and replaced
with a builder.Changes:
symbolic-common. (#246)Bug Fixes:
CpuFamily::cfi_register_name returns None instead of Some("") for some unknown registers.cpp_demangle again after the previous release was yanked. (#247)Update the cpp_demangle dependency to fix broken builds after a breaking change. (#244, thanks @o0Ignition0o)
Bug Fixes:
cpp_demangle dependency to fix broken builds after a breaking change. (#244, thanks @o0Ignition0o)Update the proguard dependency to fix line info detection.
Bug Fixes:
proguard dependency to fix line info detection. (#242)symbolic-proguard is now deprecated and will be removed in the next major release. Use the proguard crate directly. The C-bindings and Python interfac…
Deprecations:
symbolic-proguard is now deprecated and will be removed in the next major release. Use the proguard crate directly. The C-bindings and Python interface will remain. (#240)Python:
proguard 4.0.0 which supports frame remapping. (#240)Bug Fixes:
ByteView, SelfCell and AsSelf. (#241)Update broken doc comments for SelfCell and debuginfo::dwarf
Fix line information of inline parents in DWARF (#237). Many thanks to @calixteman!
Bug Fixes:
Skip invalid PE runtime function entries
Bug Fixes:
goblin to fix panics in PE unwinding (#231)gimli to to support eh_frame CIE version 3 (#231)cpp_demangle (#231)To build with the demangle feature, a C++14 compiler is now required.
Build Changes:
To build with the demangle feature, a C++14 compiler is now required.
Features:
Bug Fixes:
TooManyRegisterRules errors in CFI (#219)Your coding agent can read these notes before it upgrades. Set up the MCP server →