编译可gdb调试的程序

添加gcc -g选项.表示添加gdb调试信息.
一般信息格式是dwarf格式.

这类型的格式会携带一些数据.

readelf -Wwi a.out
...
    <c>   DW_AT_producer    : (indirect string, offset: 0x28): GNU C++ 4.8.5 20150623 (Red Hat 4.8.5-39) -mtune=generic -march=x86-64 -g
    <10>   DW_AT_language    : 4        (C++)
    <11>   DW_AT_name        : (indirect string, offset: 0x72): a.cpp
    <15>   DW_AT_comp_dir    : (indirect string, offset: 0x13): /root/cfile/gdbevent
    <19>   DW_AT_low_pc      : 0x40050d
    <21>   DW_AT_high_pc     : 0x38
    <29>   DW_AT_stmt_list   : 0x0
...
  • DW_AT_producer编译信息,记录了编译器版本,处理器流水线类型,以及架构.
  • DW_AT_language则记录了编译时的文本对应语言.
  • DW_AT_name则记录了编译时的文件名.gcc filename -o a.out,name就对应这个filename
  • DW_AT_comp_dir编译时的工作路径,在目录结构复杂的项目中,最终生成的可执行文件的这个值很可能不一样.

不建议编译的时候使用优化编译选项.
-O == -O1而不是-O0.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值