Linux开发中常用shell命令-说明二

1.  readelf 命令

readelf 命令一般用于查看 ELF 格式的文件信息,常见的文件如在Linux上可执行文件,动态库(*.so) 或者 静态库(*.a) 等包含 ELF 格式的文件。

常用选项如下:

-h (elf header),显示 elf 文件开始的文件头信息。

-V (version info),显示版本段信息。

使用如下:

readelf -h main.out    //查看main.out 文件头信息

2.  addr2line 命令

addr2line 命令用于将程序指令地址转换为所对应的函数名、以及函数所在的源文件名和行号。

作用:含有调试信息( -g ) 的执行程序出现 crash (core dumped) 时,可使用 addr2line 命令快速定位出错的位置。

如果无法确定文件名或函数名,addr2line 将在它们的位置打印两个问号;

如果无法确定行号,addr2line 将打印 0 或一个问号。

注意:代码编译时不要忘记加 -g 选项,否则在使用 addr2line 命令时无法显示文件名和行号。

常用选项如下:

-a:在函数名、文件和行号信息之前,显示地址,以十六进制形式

-e:指定需要转换地址的可执行文件名

-f:在显示文件名、行号输出信息的同时显示函数名信息

使用如下:

addr2line -f -e /to/path/libvitae.so    //在显示文件名、行号输出信息的同时显示函数名。

addr2line 0x00123456 -e main.out -f -a -p -C //将地址0x00123456转换定位到 C 代码中出错的位置

addr2line 可以配合 strace 命令和 dmesg 命令来调试 coredump文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值