GDB - C程序调试

在压缩程序后使用GDB进行调试的解决方案
针对嵌入式设备空间有限,程序需压缩的情况,文章介绍了如何在使用strip工具压缩程序的同时保留调试信息。通过objcopy保存symbol到yourprogram.dbg,然后strip掉程序的调试部分。当需要调试core文件时,利用gdb,结合原始的yourprogram.dbg文件进行调试。

背景

  1. 嵌入式设备的空间非常有限,所以程序的大小需要进行压缩,例如使用strip工具;
  2. 程序出现coredump问题以后,使用GDB调试core文件,需要有symbol信息;

冲突

那么是否有一种方法可以在压缩前保留所有的调试信息,答案是肯定的;

解决方案

使用objcopy、strip共同完成,步骤如下:

保存symbol信息

objcopy --only-keep-debug yourprogram yourprogram.dbg

压缩程序

strip --strip-debug yourprogram

调试使用

gdb -c your.core yourprogram
(gdb) symbol-file yourprogram.dbg
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值