公司网站制作公,黔东南网页设计,17.zwd一起做网站池尾站,做简历的网站都有哪些内容文章目录 符号表与可执行程序分离方法一 使用eu-strip方法二 使用 objcopy上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结
符号表与可执行程序分离
接着上篇文章 ARM 嵌入式 编译… 文章目录 符号表与可执行程序分离方法一 使用eu-strip方法二 使用 objcopy 上篇文章:ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 下篇文章:ARM 嵌入式 编译系列 10.3 – GNU elfutils 工具小结
符号表与可执行程序分离
接着上篇文章 ARM 嵌入式 编译系列 10.1 – GCC 编译缩减可执行文件 elf 文件大小 介绍,在前两篇文章中我们去掉了 可执行文件 test 中的很多内容,节省了大量的空间。由于我们把符号表也移除了,发生了coredump 我们通过gdb 工具也无法调试了。
Q: 那么我们是否可以把符号表信息保留,需要用符号表的时候在将符号表的信息导入? A:可以。
方法一 使用eu-strip
eu-strip 可以把文件的符号表保存起来,需要用的时候,导入需要的符号表就能调试 coredump文件了。
生成 release 版本的 test:gcc -o test test.c然后用 eu-strip 生成符号表:eu-strip test -f test.sym使用 eu-strip 生成的test.sym 后,可执行文件 test 中会多出多一个.gnu_deubg_link section,用来记录符号表的位置。
:~/temp$ readelf -S test
There are 30 section headers, starting at offset 0x3168:
...[25] .data PROGBITS 0000000000004000 000030000000000000000010 0000000000000000 WA 0 0 8[26