Question

I'm getting a fairly long and confusing link error, and would love it if I could just paste it into some textbox on some website and have the names un-mangled for me.

Does anyone know of such a service?

Was it helpful?

Solution

I have created such an online serivice: http://demangler.com

This is a gcc c++ symbol demangler. You just copy a stack trace, or the output of nm into a text box, and it will return the output with the names demangled.

@Update: It now demangles MSVC and Java symbols also.

OTHER TIPS

This might be a bit late, but I created one, based on this question. It works with the inputs I tried on, supports g++ and msvc++ via __cxa_demangle and __unDName, compiled to Javascript via Emscripten. Hope this helps someone: c++filtjs

Edit: Fixed escaping problem

Most (if not all) C++ compilers come with c++filt tool which does precisely what you apparently looking for.

If you want it at the mouse click... well write a GUI for it ;)

There are two copy-and-paste online solutions:

If you only need support for GCC and Clang, you also have the option of using Coliru, which is probably the most versatile online C++ compiler.

This is not quite as simple as cut, paste, and click - but not too much harder - and it looks like there are no issues with template parameters as was noted above. You just need to modify the command line to run something like this:

cat main.cpp | c++filt -t

See it live with this example which demangles:

_Z6kernelIfLj3EEvPT_5arrayIPKS0_XT0_EES5_S2_IjXT0_EES6_S0_

to:

void kernel<float, 3u>(float*, array<float const*, 3u>, array<float const*, 3u>, array<unsigned int, 3u>, array<unsigned int, 3u>, float)
           ^^^^^^^^^^^

FYI, there's also a Ruby gem to demangle Borland/MS/whatever mangled names: unmangler

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top