使用c++filt工具demangle C++符号

在C++编程中,demangling是将编译器为C++符号生成的mangled名称转换回可读形式的过程。本文介绍了如何使用`c++filt`工具来解析这些mangled符号,帮助开发者在调试时更方便地识别API。通过这个工具,你可以将复杂的mangled符号转换成易于理解的函数名称。
摘要由CSDN通过智能技术生成

demangle符号名

在调试C++程序时, 经常会遇到未demangle的C++符号名, 不了解mangle的规则时, 并不太容易确定具体是哪个API. 比如, 使用objdump将boost日志动态库的符号表导出, 你是否能够很快辨别出对应的实际的函数名称.

[jinguang1@centos7-dev ~]$ objdump -T /usr/lib/libboost_log.so

/usr/lib/libboost_log.so:     file format elf64-x86-64

DYNAMIC SYMBOL TABLE:
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZNSs6appendEPKcm
0000000000000000      DO *UND*	0000000000000000  GLIBCXX_3.4 _ZTVSt16invalid_argument
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZNSt8bad_castD2Ev
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZSt9use_facetISt7codecvtIwc11__mbstate_tEERKT_RKSt6locale
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZSt20__throw_length_errorPKc
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZNSt9basic_iosIwSt11char_traitsIwEE5imbueERKSt6locale
0000000000000000      DF *UND*	0000000000000000  GLIBCXX_3.4 _ZNSt15basic_streambu
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值