有一个C ++在线名称demangler吗?
我得到一个相当长的和混乱的链接错误,并会喜欢它,如果我可以将其粘贴到某些网站上的文本框,并没有为我的名字被打乱。
有谁知道这样的服务?
我创build了这样一个在线服务: http : //demangler.com
这是一个gcc c ++符号demangler。 您只需将堆栈跟踪或nm的输出复制到文本框中,并将返回名称为demangled的输出。
@Update:它现在也可以去除MSVC和Java符号。
这可能有点晚,但是我根据这个问题创build了一个。 它与我尝试的input一起工作,通过__cxa_demangle和__unDName支持g ++和msvc ++,通过Emscripten编译成Javascript。 希望这可以帮助一些人: c ++ filtjs
编辑:修复转义问题
大多数(如果不是全部的话)C ++编译器都带有c++filt
工具,它正是你显然在寻找的东西。
如果你想在鼠标点击… …写一个GUI;)
有两种复制粘贴的在线解决scheme:
- demangler.com ,支持GCC,Visual Studio或Java符号
- c ++ filtjs ,它支持GCC和Visual Studio,但是有模板参数的问题
如果你只需要支持GCC和Clang,你也可以select使用Coliru ,它可能是最通用的在线C ++编译器 。
这并不像剪切,粘贴和点击那样简单 – 但不是太难 – 而且看起来上面提到的模板参数没有问题。 你只需要修改命令行来运行这样的东西:
cat main.cpp | c++filt -t
看到它与 demangles 这个例子生活 :
_Z6kernelIfLj3EEvPT_5arrayIPKS0_XT0_EES5_S2_IjXT0_EES6_S0_
至:
void kernel<float, 3u>(float*, array<float const*, 3u>, array<float const*, 3u>, array<unsigned int, 3u>, array<unsigned int, 3u>, float) ^^^^^^^^^^^
仅供参考,还有一个ruby,可以将Borland / MS /无论是什么蹩脚的名字都取消