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