Is there an online name demangler for C++? [closed]

*爱你&永不变心* 提交于 2019-12-28 03:20:19

问题


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?


回答1:


I have created such an online serivice: https://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.




回答2:


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




回答3:


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 ;)




回答4:


There are two copy-and-paste online solutions:

  • demangler.com, which supports GCC, Visual Studio, or Java symbols
  • c++filtjs, which supports GCC and Visual Studio but has problems with template parameters

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)
           ^^^^^^^^^^^



回答5:


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



来源:https://stackoverflow.com/questions/3006438/is-there-an-online-name-demangler-for-c

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!