背景
- 嵌入式设备的空间非常有限,所以程序的大小需要进行压缩,例如使用strip工具;
- 程序出现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