为什么调试的时候需要编译选项中添加 -g。readelf命令.

 -g     以 操作系统的本地格式 (stabs, COFF, XCOFF, 或 DWARF).  产生调试信息. GDB能够使用这些调试信息.

       在大多数使用 stabs 格式的系统 上, `-g' 选项启动只有 GDB 才使用的额外调试信息; 这些信息使GDB调试效果更好,但是有可能导致其他调试器崩溃, 或拒绝读入程序.  如果你确定要控制是否生成额外的信息, 使用`-gstabs+', `-gstabs', `-gx‐','coff+', `-gxcoff', `-gdwarf+', 或 `-gdwarf' .

       和大多数 C 编译器不同, GNU CC 允许结合使用 `-g' 和 `-O' 选项. 优化的代码偶尔制造 一些惊异的结果:  某些声明过的变量根本不存在;  控制流程直接跑到没有预料到的地方; 某些语句因为计算结果是常量或已经确定而没有 执行; 某些语句在其他地方执行, 因为他们被移到循环外面了.

       然而它证明了调试优化的输出是可能的. 对可能含有错误的程序使用优化器是合理的.

可以通过查询手册了解更多关于 gcc -g 的选项,输入命令(man gcc)

readelf    一般用于查看 ELF 格式的文件信息。

语法:readelf (选项)(参数:文件),除了-v和-H之外,其它的选项必须有一个被指定参数。

-a 相当于指定-文件头、-程序头、-节、-符号、-重定位、-动态、-注释和-版本信息。

1)选项 -h(elf header),显示elf文件开始的文件头信息;

2)选项 -l(program headers),segments 显示程序头(段头)信息;

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值