Linux 命令(2)—— C++filt 命令

一、命令简介

C++filt 命令用来解析C++、JAVA符号。比如由于重载,编译器生成的不同符号。

二、使用方法

c++filt [-option] 符号名      ##	如果未指定符号名,默认从标准输入中读取。

三、命令选项

-_, --strip-underscore
	在某些系统中,C和C++编译器都在每个名字前面加下划线。例如,C 名称 foo 获得低级名称为 _foo。此选项用于删除初始下划线,c++filt 是否默认删除下划线是依赖于目标的
-n, --no-strip-underscore
	不删除初始下划线
-p, --no-params
	当解析函数名时,不显示函数参数的类型
-t, --types
	试图解析类型与函数名
-i, --no-verbose
	输出结果中不包括任何实现细节
-s, --format=FORMAT
	c++filt 可以解析不同编译器修饰的符号,此选项用于指明符号修饰所采用的方法:
	"auto":根据可执行文件自动选择符号解析方法,此为默认选项
	"gnu": GNU C++ compiler (g++)的符号修饰方法
	"lucid": Lucid compiler (lcc)的符号修饰方法
	"arm":C++ Annotated Reference Manual 指明的方法
	"hp":HP compiler (aCC)的符号修饰方法
	"edg":EDG compiler 的符号修饰方法
	"gnu-v3":GNU C++ compiler (g++) with the V3 ABI 的符号修饰方法
	"java":GNU Java compiler (gcj)的符号修饰方法
	"gnat":GNU Ada compiler (GNAT) 的符号修饰方法
--help
	显示帮助信息
--version
	显示版本信息
@FILE
	从文件 FILE 中读取命令行选项,读取的选项将插入到 @FILE 选项的位置。如果文件不存在,或者无法读取,那么选项 @FILE 将被按照字面意义处理,而不是被忽略

四、常用示例

## 1、编译时,动态库有中定义符号信息,查看符号原型
ldd -r ./gift_logic.so 
...
undefined symbol: _ZN5tbase4tlog5CTLog5log_iEiiPKcz	(./gift_logic.so)

c++filt  _ZN5tbase4tlog5CTLog5log_iEiiPKcz
tbase::tlog::CTLog::log_i(int, int, char const*, ...)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值