位置: 编程技术 - 正文

Linux下查看.so和可执行文件是否debug编译的方法(必看)(linux查看so中的函数)

编辑:rootadmin

推荐整理分享Linux下查看.so和可执行文件是否debug编译的方法(必看)(linux查看so中的函数),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:linux查看so版本,linux 查看so,linux怎么查看全部的搜索结果,linux 查询内容在哪个文件,linux查看so文件版本,linux查看so中的函数,linux查看so中的函数,linux 查看so,内容如对您有帮助,希望把文章链接给更多的朋友!

今天同事问我,如何判断一个.so是否是debug编译的。

我记得以前自己是用file来查看一个.so,根据是否包含"not stripped"来判断该.so是否是debug编译的,于是就没做实验就回答。

然而,stripped/not stripped并不是debug/release编译的判断标准. 我对debug和release的.so运行file后,得出几乎相同的输出, 都是not stripped. 所以我算是误导同事了。

根据<Computers Systems - A Programmer's Perspective>所言, debug/release的区别更多的表现在.so和可执行程序所拥有的段上。debug编译出来的。so和可执行程序拥有很多附加的段来包含哪些debug的信息。 所以查看段信息是一种判断的方式。

我在Ubuntu .上分别对同一个开源软件进行debug和release编译,并且查看某个.so的段(readelf -S),发现release编译的只有个段:

Linux下查看.so和可执行文件是否debug编译的方法(必看)(linux查看so中的函数)

而debug编译的则有个段, 且所有比release编译多出来的段,都是以.debug_作为开始字符串来命名的:

对于可执行文件也有类似的区别。

所以这应当是判断debug/release的一个比较正确的方法了。

===================================

命令

readelf -S libxxx.so |grep debug

以上这篇Linux下查看.so和可执行文件是否debug编译的方法(必看)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持积木网。

linux下批量删除utf8 bom的实现方法 低版本的gcc编译包含bom的文件会报错xxx.cpp:1:error:stray‘'inprogramxxx.cpp:1:error:stray‘'inprogramxxx.cpp:1:error:stray‘'inprogram批量删除之grep-rIlo$'^xEFxBBxB

Linux下的tar压缩解压缩命令详解(小结) tar-c:建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,

linux下编译boost.python简单方法 最近项目使用c++操作Python脚本,选用boost.python库。在window下编译安装很顺利,但是在Linux下一直编译不通过,总是提示找不到头文件。linux版本为rhel5.7。

本文链接地址:https://www.jiuchutong.com/biancheng/374633.html 转载请保留说明!

上一篇:判断Linux Shell环境变量是否存在(linux shell条件判断语句)

下一篇:linux下批量删除utf8 bom的实现方法(linux如何一次性删除多个文件)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络