首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >寻找支持STL的c++filt

寻找支持STL的c++filt
EN

Stack Overflow用户
提问于 2009-12-23 23:52:52
回答 1查看 357关注 0票数 2

在我的开发环境中,我正在使用GNU C++ 3.4.6编译一个代码库。代码正在开发中,不幸的是偶尔会崩溃。能够通过demangler运行回溯非常好,我使用的是c++filt 3.4。当函数有许多STL参数时,问题就出现了。考虑一下

代码语言:javascript
复制
My_callback::operator()(
   Status&,
   std::set<std::string> const&,
   std::vector<My_parameter*> const&,
   My_attribute_set const&,
   std::vector<My_parameter_base*> const&,
   std::vector<My_parameter> const&,
   std::set<std::string> const&
)
{
   // ...
}

当此函数在回溯中时,我的平台上损坏的输出是:

代码语言:javascript
复制
(_ZN30My_callbackclER11StatusRKSt3setISsSt4lessISsESaISsEERKSt6vectorIP13My_parameterSaISB_EERK17My_attribute_setRKS9_IP18My_parameter_baseSaISK_EERKS9_ISA_SaISA_EES8_+0x76a) [0x13ffdaa]

c++filt亲切地将其分解为

代码语言:javascript
复制
(My_callback::operator()(Status&, std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&, std::vector<My_parameter*, std::allocator<My_parameter*> > const&, My_attribute_set const&, std::vector<My_parameter_base*, std::allocator<My_parameter_base*> > const&, std::vector<My_parameter, std::allocator<My_parameter> > const&, std::set<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)+0x76a) [0x13ffdaa]

这与使用模板时遇到的编译器错误是相同的问题。然而,STL是一个相当规则和可识别的模板包。因此,我希望有人已经创建了一个增强版本的c++filt,它将转储一些更接近原始函数签名的东西。有什么提示吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-24 00:01:11

STLFilt简化和/或重新格式化冗长的C++错误和警告消息,重点放在与STL相关的诊断上。其结果使得许多即使是最隐蔽的诊断也是可理解的。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1953574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档