首页 技术 正文
技术 2022年11月14日
0 收藏 758 点赞 4,194 浏览 32415 个字

如何查看程序被哪个版本编译器编译的linux-gcc http://bbs.csdn.net/topics/380000949

那是不可能的,除非你加入了调试信息,也就是编译的时候加入了-g参数,然后用gdb调试就可以显示。最大程度上查看一个elf文件信息。

readelf -Wa a.out | head
readelf -wi a.out
readelf -p .comment a.out
objdump -s –section .comment audioplayer

如下:

[root@localhost rootfs]#  readelf -Wa bin/gzip

ELF Header:
Magic: 7f 4c
Class: ELF32
Data: 's complement, little endian
Version: (current)
OS/ABI: UNIX - System V
ABI Version:
Type: EXEC (Executable file)
Machine: ARM
Version: 0x1
Entry point address: 0xa080
Start of program headers: (bytes into file)
Start of section headers: (bytes into file)
Flags: 0x5000002, has entry point, Version5 EABI
Size of this header: (bytes)
Size of program headers: (bytes)
Number of program headers:
Size of section headers: (bytes)
Number of section headers:
Section header string table index: Section Headers:
[Nr] Name Type Addr Off Size ES Flg Lk Inf Al
[ ] NULL
[ ] .note.ABI-tag NOTE 000080f4 0000f4 A
[ ] .init PROGBITS 00000c AX
[ ] .text PROGBITS 17fcfc AX
[ ] __libc_freeres_fn PROGBITS 00187e1c 17fe1c 000f20 AX
[ ] __libc_thread_fre PROGBITS 00188d3c 180d3c 0000e4 AX
[ ] .fini PROGBITS 00188e20 180e20 AX
[ ] .rodata PROGBITS 00188e28 180e28 A
[ ] __libc_subfreeres PROGBITS 001e0f70 1d8f70 00005c A
[ ] __libc_atexit PROGBITS 001e0fcc 1d8fcc A
[] __libc_thread_sub PROGBITS 001e0fd0 1d8fd0 A
[] .ARM.extab PROGBITS 001e0fd8 1d8fd8 001b04 A
[] .ARM.exidx ARM_EXIDX 001e2adc 1daadc 006ea8 AL
[] .tdata PROGBITS 001f1984 1e1984 WAT
[] .tbss NOBITS 001f199c 1e199c WAT
[] .init_array INIT_ARRAY 001f199c 1e199c WA
[] .fini_array FINI_ARRAY 001f19a0 1e19a0 WA
[] .jcr PROGBITS 001f19a8 1e19a8 WA
[] .data.rel.ro PROGBITS 001f19ac 1e19ac 00002c WA
[] .got PROGBITS 001f19d8 1e19d8 00007c WA
[] .data PROGBITS 001f1a58 1e1a58 0008f7 WA
[] .bss NOBITS 001f2350 1e234f WA
[] __libc_freeres_pt NOBITS 001f6b78 1e234f 00003c WA
[] .ARM.attributes ARM_ATTRIBUTES 1e234f 00002b
[] .shstrtab STRTAB 1e237a Section to Segment mapping:
Segment Sections...
.ARM.exidx
.note.ABI-tag .init .text __libc_freeres_fn __libc_thread_freeres_fn .fini .rodata __libc_subfreeres __libc_atexit __libc_thread_subfreeres .ARM.extab .ARM.exidx
.tdata .init_array .fini_array .jcr .data.rel.ro .got .data .bss __libc_freeres_ptrs
.note.ABI-tag
.tdata .tbssAttribute Section: aeabi
File Attributes
Tag_CPU_name: "5TE"
Tag_CPU_arch: v5TE
Tag_ARM_ISA_use: Yes
Tag_THUMB_ISA_use: Thumb-
Tag_ABI_PCS_wchar_t:
Tag_ABI_FP_denormal: Needed
Tag_ABI_FP_exceptions: Needed
Tag_ABI_FP_number_model: IEEE
Tag_ABI_align8_needed: Yes
Tag_ABI_align8_preserved: Yes, except leaf SP
Tag_ABI_enum_size: int
Tag_unknown_44: (0x1)

How to retrieve the GCC version used to compile a given ELF executable? http://stackoverflow.com/questions/2387040/how-to-retrieve-the-gcc-version-used-to-compile-a-given-elf-executable

  QUES: I’d like to retrieve the GCC version used to compile a given executable. I tried readelf but didn’t get the information. Any thoughts?

  ANS: To complete what others have said: it’s not stored in the object (or exe) file, unless you compile with debugging information! (option -g). If you compile with debug info, you can get it back with readelf:  

[root@localhost test]# gcc a.c
[root@localhost test]# readelf -wi a.out
[root@localhost test]# gcc a.c -g
[root@localhost test]# readelf -wi a.out
The section .debug_info contains: Compilation Unit @ offset 0x0:
Length:
Version:
Abbrev Offset:
Pointer Size:
<><b>: Abbrev Number: (DW_TAG_compile_unit)
DW_AT_stmt_list :
DW_AT_high_pc : 0x400453
DW_AT_low_pc : 0x400448
DW_AT_producer : GNU C 4.1. (Red Hat 4.1.-)
DW_AT_language : (ANSI C)
DW_AT_name : a.c
DW_AT_comp_dir : /work/farsight/test
<><>: Abbrev Number: (DW_TAG_subprogram)
DW_AT_external :
DW_AT_name : main
DW_AT_decl_file :
DW_AT_decl_line :
DW_AT_prototyped :
DW_AT_type : <>
DW_AT_low_pc : 0x400448
DW_AT_high_pc : 0x400453
DW_AT_frame_base : (location list)
<><>: Abbrev Number: (DW_TAG_base_type)
DW_AT_name : int
DW_AT_byte_size :
DW_AT_encoding : (signed)

  ANS2:

aaarticlea/png;base64,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” alt=”” />

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850