- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
在我的开发环境中,我正在使用 GNU C++ 3.4.6 编译代码库。代码正在开发中,不幸的是时不时会崩溃。很高兴能够通过 demangler 运行回溯,我使用 c++filt 3.4。当函数有许多 STL 参数时,问题就来了。考虑
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&
)
{
// ...
}
当这个函数在回溯中时,我平台上的错误输出是:
(_ZN30My_callbackclER11StatusRKSt3setISsSt4lessISsESaISsEERKSt6vectorIP13My_parameterSaISB_EERK17My_attribute_setRKS9_IP18My_parameter_baseSaISK_EERKS9_ISA_SaISA_EES8_+0x76a) [0x13ffdaa]
c++filt 将其分解为
(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,它将转储更接近原始函数签名的内容。有什么提示吗?
最佳答案
STLFilt简化和/或重新格式化冗长的 C++ 错误和警告消息,重点是与 STL 相关的诊断。结果使许多甚至是最神秘的诊断变得易于理解。
关于c++ - 求STL-aware c++filt,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1953574/
对不起,如果这很愚蠢,但我对此感到困惑。 我做了Google我的问题,但找不到任何相关结果。 对于以下代码编译并写入 a.out : char x; cout<
有谁知道c++filt源代码的链接。我想在我的代码中调用 c++filt 作为库。 最佳答案 在 Linux 上,您可以使用 /usr/include/demangle.h ,它是 binutils-
我正在通过 c++filt 过滤我编译的 PTX,但它只删除了一些名称/标签并保留了一些原样。例如,这个: func (.param .b32 func_retval0) _ZN41_INTERNA
我需要从一个大型 C++ 项目中删除未使用的函数。阅读一段时间后,我使用了这个链接:How can I know which parts in the code are never used? 我使用
在我的开发环境中,我正在使用 GNU C++ 3.4.6 编译代码库。代码正在开发中,不幸的是时不时会崩溃。很高兴能够通过 demangler 运行回溯,我使用 c++filt 3.4。当函数有许多
我刚刚跑了c++filt当我有一个重复的符号错误时进行解码: $ c++filt __ZN4uiuclsERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEE
在我的 linux 上,我有一个 .cpp 文件 void f(){} struct C{void f(){}}; 我编译了它并把二进制文件串起来,尝试去破坏函数名: $c++filt __Z1gv
我在 GCC C++ 编译器上运行代码,以输出 type_info::name: #include #include using namespace std; class shape { p
我正在尝试将 demangler 与 llvm-cov 报告工具结合使用。以下是我正在运行的命令: llvm-cov report /path/to/executable -instr-profile
我只是想学习c++filt,网络上没有足够的示例用法.... 我正在编写一个 main.cpp 文件并尝试读取机器代码.... g++ -S main.cpp -> gives me main.s 如
我遇到了一个问题,我不确定这是 kqueue 的预期行为还是我做错了什么。 我需要使用 kqueue 为单个套接字文件描述符安装单独的事件。单独的事件是 (sockfd,EVFILT_READ) 和
我是一名优秀的程序员,十分优秀!