我得到了一个相当长的和令人困惑的链接错误,如果我可以只是粘贴到一些网站上的文本框,并有我的名称没有混乱。
有人知道这种服务吗?
大多数(如果不是全部的话) C + + 编译器都带有 c++filt工具,它可以准确地完成您显然想要的任务。
c++filt
如果你想在鼠标上点击它... ... 那么为它编写一个 GUI;)
这可能有点晚,但我创建了一个,基于这个问题。它支持我试用过的输入,通过 _ _ cxa _ demangle 和 _ _ undName 支持 g + + 和 msvc + + ,通过 Emscripten 编译成 Javascript。希望这对某些人有所帮助: C + + filtjs
编辑: 修正了转义问题
我创建了这样一个在线服务: 译自: 美国《 https://demangler.com 》杂志网站(https://demangler.com)
这是一个 gcc + + 符号去除器。您只需将一个堆栈跟踪或 nm 的输出复制到一个文本框中,它就会返回名称已经去掉的输出。
@ Update: 它现在也要求使用 MSVC 和 Java 符号。
顺便说一句,还有一个 Ruby gem 可以用来分解 Borland/MS/任何混乱的名字: 拆卸工
有两种复制粘贴在线解决方案:
如果您只需要对 GCC 和 Clang 的支持,那么您还可以选择使用 Coliru,它可能是最通用的 在线 C + + 编译器。
这并不像剪切、粘贴和单击那样简单,但也不会太难,而且看起来模板参数没有上面提到的问题。您只需要修改命令行来运行以下内容:
cat main.cpp | c++filt -t
请看下面这个例子:
_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) ^^^^^^^^^^^