Skip to content

Releases: nico/demumble

v1.3.0

05 Aug 18:52
Compare
Choose a tag to compare
  • swift demangling support
  • [ms] Two demangling fixes for non-type template parameters
  • [itanium] Demangling for built-in type transformations
  • [itanium] Demangling rules for C++20 concepts and requires-expressions
  • [itanium] Demangle explicitly named object parameters

v1.2.3

07 Aug 18:18
Compare
Choose a tag to compare

Mostly updates LLVM's demangling libraries to a new version. The main effect of that is that this release can demangle some D and Rust symbols.

The macOS binary is now universal (meaning it can run on both Intel and Apple Silicon macs), instead of having a separate zip file with a universal binary.

demumble is now build using C++17, which especially on Linux might require more symbols in libstdc++ (…but it's built against the same sysroot as last time, and on macOS it uses the same -mmacos-version-min=10.9 flag).

Bug fixes:

  • Don't silently omit suffices on ms symbols, #10
  • Fixed warnings when building with MSVC's cl.exe

Other than that, there are a bunch of internal changes that shouldn't affect users of the demumble binary:

  • Various infra scripts in the repository now require Python 3.
  • The build now requires CMake 3.5 (released Dec 2018) instead of 3.2 previously.
  • There are now GitHub actions that run tests on each commit.

v1.2.2

18 May 20:51
Compare
Choose a tag to compare

Bugfix release.

I added a universal binary built at the same tag as v1.2.2 a few months after the original release. I didn't want to overwrite the existing demumble-mac.zip. Future releases will have the universal binary in demumble-mac.zip.

The Linux binary is now built with a Debian Sid sysroot, instead of a Debian Jessie sysroot as before.

  • [itanium] can now demangle symbols containing $ such as _ZZ3fooiENK3$_0clEi
  • [itanium] support C++20 char8_t
  • [itanium] support for C++20 lambda expression extensions
  • [itanium] fix demangling of enums with negative values
  • [itanium] support for this expressions such as _ZN1A1gIiEEDTcldtptfpT1b1fIT_EEEv
  • [ms] demangle rtti descriptor names such as .?AVNet@@ if passed as arg (but not when filtering)

v1.2.1

24 Jun 19:45
Compare
Choose a tag to compare

Bugfix release.

  • Can combine flags, -bm now does the same as -b -m
  • [ms] many many stability fixes for invalid inputs
  • [ms] support for demangling MSVC's noexcept types
  • [ms] support for operator<=> demangling
  • [ms] operator co_await now demangled as operator co_await, not
    co_await
  • [ms] correct \x escapes in char16_t, wstring_t, char32_t literals
  • [ms] \0 characters in string literals are now demangled as \0, not \x00;
    better string literal demangling heuristic for strings with \0s
  • [ms] correctly demangle vararg parameters
  • [ms] support demangling char8_t
  • [ms] support demangling local static thread guards
  • [itanium] support for block literals
  • [itanium] support gcc "old-style unified" ctor and dtor manglings
  • [itanium] vendor extended types demangling fix
  • [itanium] support for demangling __uuidof expressions

Binaries are now built by the new dist.py script.

v1.2.0

11 Mar 18:15
Compare
Choose a tag to compare

New -b flag for printing both demangled and mangled names:

$ echo _ZN3fooC1Ev _ZN3fooC2Ev | ./demumble -b
"foo::foo()" (_ZN3fooC1Ev) "foo::foo()" (_ZN3fooC2Ev)

v1.1.0

13 Nov 21:14
Compare
Choose a tag to compare
  • better Windows symbol demangling (rvalue references work, string literals show string contents, …)
  • 2x faster non-Windows symbol demangling
  • new -u flag for unbuffered output

v1.0.0

16 Dec 19:18
Compare
Choose a tag to compare
v1.0.0