有没有C++的在线名称demangler?[已关闭]

prdp8dxp  于 2022-12-24  发布在  其他
关注(0)|答案(5)|浏览(155)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

我们不允许问题寻求有关书籍、工具、软件库等的推荐。你可以编辑问题,以便可以使用事实和引用来回答问题。
六年前关闭了。
Improve this question
我得到了一个相当长的和混乱的链接错误,并会喜欢它,如果我可以把它粘贴到一些文本框中的一些网站,并有名称为我解开。
有人知道有这样的服务吗?

2q5ifsrm

2q5ifsrm1#

我创建了这样一个在线服务:https://demangler.com
这是一个gcc c++符号解复用器,你只需复制一个堆栈跟踪,或者nm的输出到一个文本框中,它就会返回带有解复用名称的输出。
@更新:它现在也可以解封装MSVC和Java符号。

nafvub8i

nafvub8i2#

我根据这个问题创建了一个。它可以与我尝试的输入一起工作,通过__cxa_demangle__unDName支持g和msvc,通过Emscripten编译成Javascript。
这就是:c++filtjs

ni65a41a

ni65a41a3#

大多数(如果不是全部的话)C++编译器都附带了c++filt工具,它正好可以做你显然在寻找的事情。
如果你想在鼠标点击它...我们写一个图形用户界面;)

dfuffjeb

dfuffjeb4#

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

如果只需要支持GCC和Clang,还可以选择使用Coliru,它可能是最通用的online C++ compiler
这并不像剪切、粘贴和单击那么简单--但也不会太难--而且看起来模板参数没有问题,就像上面提到的那样。您只需要修改命令行就可以运行类似下面的命令:

cat main.cpp | c++filt -t

See it live with this example,其解角:

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

b91juud35#

顺便说一句,还有一个Ruby宝石来解开Borland/MS/任何损坏的名称:unmangler

相关问题