位置: 编程技术 - 正文
推荐整理分享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编译的只有个段:
而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。
标签: linux查看so中的函数
本文链接地址:https://www.jiuchutong.com/biancheng/374633.html 转载请保留说明!友情链接: 武汉网站建设