C++ 是否有C+的在线名称demangler+;?

C++ 是否有C+的在线名称demangler+;?,c++,demangler,C++,Demangler,我得到了一个相当长且令人困惑的链接错误,如果我能将它粘贴到某个网站的文本框中,并为我清除名称,我会很高兴的 P> >(P/> P)>大多数(如果不是全部)C++编译器附带的是代码> C++ + FILT工具,它精确地显示了你所要寻找的东西。 如果你想在鼠标点击它。。。我们为它编写一个GUI;) 这可能有点晚了,但我根据这个问题创建了一个。它与我尝试过的输入一起工作,通过uu cxa_demangle和u unDName支持g++和msvc++,通过Emscripten编译成Javascript

我得到了一个相当长且令人困惑的链接错误,如果我能将它粘贴到某个网站的文本框中,并为我清除名称,我会很高兴的

<> P> >(P/> P)>大多数(如果不是全部)C++编译器附带的是代码> C++ + FILT<代码>工具,它精确地显示了你所要寻找的东西。


如果你想在鼠标点击它。。。我们为它编写一个GUI;)

这可能有点晚了,但我根据这个问题创建了一个。它与我尝试过的输入一起工作,通过uu cxa_demangle和u unDName支持g++和msvc++,通过Emscripten编译成Javascript。希望这对某人有所帮助:


编辑:修复了转义问题

我创建了这样一个在线服务:

这是GCC C++符号Dangangle。您只需将堆栈跟踪或nm的输出复制到文本框中,它将返回名称为demangled的输出


@更新:它现在还需要MSVC和Java符号

仅供参考,demangle Borland/MS/还有一个Ruby gem可供选择:

有两种在线复制粘贴解决方案:

  • ,它支持GCC、Visual Studio或Java符号
  • ,它支持GCC和visualstudio,但
如果您只需要支持GCC和Clang,那么您还可以选择使用,这可能是最通用的

这并不像剪切、粘贴和单击那么简单,但也不会太难,而且如上所述,模板参数似乎没有问题。您只需修改命令行即可运行以下内容:

cat main.cpp | c++filt -t
哪些需求:

_Z6kernelIfLj3EEvPT_5arrayIPKS0_XT0_EES5_S2_IjXT0_EES6_S0_
致:

void内核(浮点*,数组,数组,数组,数组,浮点)
^^^^^^^^^^^

Btw,你的编译器是什么?也许你可以使用它附带的现成工具。我找到了“undname.exe”,它为VC++完成了工作。将你的名字粘贴在这里,如果是VC2005的名字,我会要求它。无需在线要求:我只需要最小的努力,而不是只需点击鼠标:)哦,好吧,我通常使用的c++过滤器是
objdump-dr./AClass.o | c++过滤器| less
(反汇编程序)或
nm./AClass.o | c++过滤器| less
(对象文件内的符号列表)大多数编译器不是GCC。非GCC的编译器不提供c++过滤器。归纳起来,大多数编译器并不提供c++过滤器。
echo”“| c++过滤器
Awesome!非常感谢。也许在页面上的某处提到“在线C++名字Dangangle”,这样人们就可以通过谷歌找到你了。好的,现在应该被修复。@ ZBRI:一个“小C源”不是在线的。为此,请使用现有的c++filt和undname实用程序。@nattofriends:您的工具似乎没有转义括号,请参见
?\u R3$KxSet@V?$KxSpe@DI@@I@@8
。如果您能用其他人提到的模板解决您的问题,那将非常有帮助。这至少导致了一个问题。这个问题对我有效,但不是更流行的答案中的问题:_zn9cdnalizer11重写htmlins_6pache8iteratoreceet_rksrkns_6; u S3_st8函数ifs3_RKS3_SB_EES9_如果您的demangler无法为安腾请求ref限定符。我正在看由Clang生成的_ZNR4test1fEv。谢谢,很好的网站!请添加
空白:正常的
或类似于responseSection标签(可能添加行号)?长单行输出当前不可读。您应该小心。demanglers的大多数实际实现都存在可怕的错误和不安全。它们基本上只对同一平台生成的损坏名称起作用,但在一般输入上可能会遇到高复杂性或完全的内存错误。我经常使用它。不过,它似乎已经关闭了。这是一个非常好、有用的页面
void kernel<float, 3u>(float*, array<float const*, 3u>, array<float const*, 3u>, array<unsigned int, 3u>, array<unsigned int, 3u>, float)
           ^^^^^^^^^^^