最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

[学习记录]程序版本:release和debug的区别

工作和技术 crifan 2057浏览 0评论

之前就偶尔想过这个问题,但是对其似懂非懂,今天 了点自己的理解:
由于程序在编译的时候,是可以选择,是否包含调试信息的,
比如对于gcc来说,加上参数-g,就表示包含调试信息。
这样,才可以支持后续的调试,在程序里面会有对应的段的信息,
会包含众多的,调试器所需要的信息,才能支持在调式的时候,找到你的源码和目标代码之间的关系,

加上调试信息的好处,就是可以方便地调试,
由于调式信息的坏处:往往调式信息,比本身可执行文件的内容还大,
所以对于已经彻底开发完成的程序,之后不需要调试开发了,就应该去掉可执行文件里面的调式信息了。
以减小可执行文件的大小,去除不需要的调试信息。

linux下,有个对应的工具,就是大家常见的strip,对程序进行“剥皮”,去掉可执行文件所不需要的信息。

因此,对于release和debug的版本的程序,最大的区别也就是:
release版本的,不包含调式信息;
debug版本的,包含调试信息,一般文件大小要更大些。

转载请注明:在路上 » [学习记录]程序版本:release和debug的区别

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
79 queries in 0.165 seconds, using 22.11MB memory