请教,在Linux上,如何知道一个可执行文件是否包含调试信息呢?我的意思是是否该文件是使用如gcc -g 这样的参数编译的。

2楼 发表于 2008-12-3 15:44

nm -a binary_file

3楼 发表于 2008-12-3 15:46

gdb试一下就知道了

4楼 发表于 2008-12-3 15:47

同意LS的,直接gdb测试一下就知道了。

5楼 发表于 2008-12-3 15:51

nm不太直观

还是readelf比较好

readelf -S filename | grep debug

带-g的会有.debug_info .debug_line等信息

6楼 发表于 2008-12-3 15:55

man 1 file

7楼 发表于 2008-12-3 16:03

QUOTE:

原帖由 deadlylight 于 2008-12-3 15:51 发表

nm不太直观

还是readelf比较好

readelf -S filename | grep debug

带-g的会有.debug_info .debug_line等信息

不使用-g的时候,也由于.debug_info和.debug_line。经过我的测试,一个Hello World的小程序,不带-g编译,readelf -S a.out | grep debug的输出如下:

[26] .debug_aranges    PROGBITS        00000000 000ba0 000078 00      0   0  8

[27] .debug_pubnames   PROGBITS        00000000 000c18 000025 00      0   0  1

[28] .debug_info       PROGBITS        00000000 000c3d 000236 00      0   0  1

[29] .debug_abbrev     PROGBITS        00000000 000e73 000076 00      0   0  1

[30] .debug_line       PROGBITS        00000000 000ee9 0001a4 00      0   0  1

[31] .debug_str        PROGBITS        00000000 00108d 0000d3 01  MS  0   0  1

带-g编译后,eadelf -S a.out | grep debug的输出如下:

[26] .debug_aranges    PROGBITS        00000000 000ba0 000098 00      0   0  8

[27] .debug_pubnames   PROGBITS        00000000 000c38 000040 00      0   0  1

[28] .debug_info       PROGBITS        00000000 000c78 00695d 00      0   0  1

[29] .debug_abbrev     PROGBITS        00000000 0075d5 000733 00      0   0  1

[30] .debug_line       PROGBITS        00000000 007d08 00056c 00      0   0  1

[31] .debug_frame      PROGBITS        00000000 008274 000084 00      0   0  4

[32] .debug_str        PROGBITS        00000000 0082f8 00094a 00      0   0  1

[33] .debug_loc        PROGBITS        00000000 008c42 0000c7 00      0   0  1

比较发现多出了.debug_frame和.debug_loc。

比较nm -a a.out | grep debug   对带-g和不带-g的文件的输出结果也显示,只是多出了.debug_frame和.debug_loc。

直接使用gdb试,感觉不够爽!仅自己的看法,呵呵,不要拍砖!

8楼 发表于 2008-12-3 16:20

QUOTE:

原帖由 JohnBull 于 2008-12-3 15:55 发表

man 1 file

file我试过,好像显示不出任何与此有关的信息。如果你确定,能不能说的具体一点。

9楼 发表于 2008-12-3 21:24

file 不同版本可能有所不同

10楼 发表于 2008-12-4 01:17

readelf --debug-dump

linux系统怎么查找 文件是否存在,在Linux上,如何知道一个可执行文件是否包含调试信息呢?...相关推荐

  1. linux 按名字查找文件夹,详细解读linux系统中使用Find命令查找文件

    摘要:文件查找是一个经常用到的功能,在linux系统中查找文件的命令比较多:find.locate.whereis .which等,今天心月就来详细解读find文件查找命令的使用. 文件查找是一个经常 ...

  2. linux 遍历目录查找文件find太慢,Linux下比find快N倍的文件查找命令

    使用linux操作系统的人,一般都用过文件查找命令find,在文件数量非常庞大的时候,比如在高通的android工程项目中,目录大小有十几个G,文件数量非常多,用find命令就太慢了. 下面介绍一个比 ...

  3. linux根据文件大小,linux 根据文件大小查找文件

    inux下的find命令用来查找文件,通过man find就知道它是无所不能的.所以按照文件大小来查找文件就不在话下.从man find搜索size,可以看到如下信息: -size n[cwbkMG] ...

  4. Linux系统根目录下文件是啥

    Linux系统根目录下文件是啥 在linux系统,根目录"/"中的一些重要的文件夹: /bin 存储一些二进制可执行命令文件,/usr/bin 也存放了一些基于用户的命令文件. / ...

  5. linux查找最近访问的文件,教您在Linux系统中查找最近修改的文件/文件夹

    如果您使用Linux系统进行日常操作,则主目录文件将随时间急剧增加.如果您有成千上万个文件,很可能不记得最近更改的文件名,本文将教您在Linux系统中查找最近修改的文件/文件夹.另外,如果要检查出于任 ...

  6. linux 查找只读文件夹,Linux系统中查找命令find的使用方法(二)

    今天达内Linux培训小编要继续跟大家分享关于Linux系统中中查找命令find的使用方法的文章.在上文中小编提到,Linux查找命令是Linux系统中很重要也是很常用的命令之一.Linux的查找命令 ...

  7. linux系统中find怎么用,Linux系统中查找命令find的使用方法(一)

    今天达内Linux培训小编要跟大家分享的文章是关于Linux系统中中查找命令find的使用方法.熟悉Linux系统的小伙伴们都知道,Linux查找命令是Linux系统中很重要也是很常用的命令之一.Li ...

  8. Linux系统编程【文件IO、进程、进程间通信、信号、线程、互斥】

    linux系统编程 个人通过学习,手打了一份48000字的Linux系统编程的笔记,包含了[文件IO.进程.进程间通信.信号.多线程.互斥]等知识点,并给出了大量的代码案例对每个重要的知识点进行了代码 ...

  9. linux全局查找字符串,Linux系统字符串查找命令详细说明

    Linux系统中有时候需要特定的查找字符串的功能.下面由学习啦小编为大家整理了Linux系统字符串查找命令详细说明,希望对大家有帮助! Linux系统字符串查找命令详细说明 1.作用 Linux系统中 ...

最新文章

  1. Confluence 6 Windows 中以服务方式自动重启的原因
  2. Eclipse常用的高效插件
  3. bind9 安装:部署自建dns系统
  4. 杂项:E-Learning
  5. 夏天这四件事会耗干你的阳气,尤其是第三件!
  6. UI自动化,你值得拥有
  7. 【优化预测】基于matlab差分优化灰狼算法优化支持向量机SVM预测【含Matlab源码 1576期】.zip
  8. 不用找,你想要的皮革 皮草 皮毛贴图素材都在这里
  9. Missing artifact com.lowagie:itextasian:jar:2.1.7
  10. 设置服务器网站播放flv视频文件,网页制作 flvplayer.swf无法播放服务器上flv文件 如何设置...
  11. python 单例模式基本原则、使用场景、应用示例
  12. 智能电单车解决方案需要解决那些问题
  13. win11家庭中文版 安装docker 步骤
  14. c语言字符二维数组传参,C语言——二维数组传参
  15. CentOS7.5 远程桌面设置
  16. go第三方日志库 Zap
  17. OrCAD 与 Cadence Allegro PCB 入门 - 以 16.6版本为例 (3)
  18. 微信怎么识别图片文字
  19. redis三种连接方式
  20. 深度学习——3D Fully Convolutional Network for Vehicle Detection in Point Cloud模型实现

热门文章

  1. RESTful之权限Permissions
  2. 提高CSDN阅读量。需要写出好文章。新技术的笔记!
  3. ACMNO.49:一元三次方程求解(主要就是精度问题)
  4. 汇总 | 深度学习中图像语义分割基准数据集详解
  5. 轻松学Pytorch–环境搭建与基本语法
  6. 链表问题5——反转部分单向链表
  7. 超牛EXCEL操作技巧,用的好,会涨工资哦
  8. git 入门教程之本地和远程仓库的本质
  9. Java堆外内存的使用
  10. this class is not key value coding-compliant for the key ##