29、深入探索GDB调试工具

深入探索GDB调试工具

1. 为GDB编译程序

调试程序时,为了创建增强的符号表,需要使用 -g 选项编译源代码。例如,使用以下命令编译程序:

$ gcc -g file1.c file2.c -o prog

此命令会使 prog 程序的符号表中包含调试符号。如果需要生成更多(特定于GDB)的调试信息,可以使用 gcc -ggdb 选项。不过,要使该选项发挥最大效果,需要访问所链接的每个库的源代码。虽然这在某些情况下很有用,但会占用大量磁盘空间,因此大多数情况下使用普通的 -g 选项即可。

需要注意的是,虽然可以同时使用 -g -O (优化)选项,但优化会改变程序的执行结果,可能导致编写的代码与执行的二进制文件之间的关系与预期不符,如变量或代码行可能消失,变量赋值可能在意外的时间发生。建议在尽可能彻底地调试代码后再进行优化,这样可以使调试过程更简单、压力更小。

另外,若以二进制形式分发程序,请勿剥离二进制文件的符号。这不仅是对用户的礼貌,还可能对自己有帮助。如果用户使用的是仅二进制版本的程序并报告了一个bug,但由于你为了减小二进制文件大小而剥离了所有符号,用户将无法提供有用的信息。虽然用户可能愿意下载源代码重新编译以启用调试,但要求用户这样做是不合适的。

2. 使用基本的GDB命令

GDB的大部分功能可以通

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值