All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
Unreleased - ReleaseDate
2.2.0 - 2023-02-03
- dump_syms now supports dumping DWARF debug information in Windows PE files
- Use the last version of symbolic (11) and various other crates
- Avoid underflows when infering the length of the last line in a function
- Do not emit
INLINE_ORIGIN
directives where the name is made entirely of whitespace, these are replaced with a<name omitted>
symbol
2.1.1 - 2022-11-29
- Use the last version of the symbolic crates and update to clap 4
INLINE_ORIGIN
names could contain line-breaks if the debuginfo contained them. These caused parsing the .sym file to fail so they're now stripped before emitting them.
2.1.0 - 2022-11-18
- The program version is now included in the .sym file under a
INFO GENERATOR
line. This line can be used to identify which version of dump_syms was used to produce a .sym file and will be ignored by most legacy tools.
- Use the last version of the symbolic, goblin and cpp_demangle crates for improved output and better compatibility
2.0.2 - 2022-10-20
Minor release with only the changes of the previous release, but this time in the right repository.
2.0.1 - 2022-10-20
- Several labels added by compilers are stripped from the symbols
- Use the last version of the cpp_demangle crate for better results
- Function names are properly demangled even when inlined
- Emit a
<name omitted>
symbol when an inline function doesn't have a name (this can happen with debug information that has been split with tools like dwz), this avoids emittingINLINE_ORIGIN
directives without a name
2.0.0 - 2022-08-18
Major release, adds support for inlined functions in symbol files and fixes a large number of issues.
- Emit information about inlined functions using INLINE and INLINE_ORIGIN
directives when the
--inlines
option is specified.
- Use the same logic to handle Windows PE/PDB and ELF files, resulting in better consistency across platforms
- Dummy symbols for executable sections are now generated for all architectures
static
is not emitted anymore in front of method names
- Linux absolute paths in Windows PDB files are handled correctly
- Names that were accidentally demangled twice are now handled properly
- Parameter size is now detected correctly on Windows
- Symbols matching multiple addresses are now properly marked on ELF
- The best symbol is always used when present in separate files, even when it doesn't appear in the first file
- Using symbol stores now works correctly on Linux and macOS too
1.0.1 - 2022-05-25
- Fixed dumping when HTTP support is disabled.
1.0.0 - 2022-05-24
First public release on crates.io. Functional parity with Breakpad dump_syms tools for Linux, Windows and macOS including changes in the Mozilla fork. Much faster and providing significantly better output than the original.
Several long-standing issues with the original dump_syms logic were also fixed including unwinding directives for certain opcodes, compact unwinding info support on macOS, surfacing of public symbols, normalization of namespaces across different architectures, removal of compiler-generated suffixes and better handling of Windows types.
The crate can be used to build a stand-alone executable or as a library to provide symbol-file generation in other tools.