当前位置:  技术问答>linux和unix

ELF文件中调试信息的格式说明?

    来源: 互联网  发布时间:2016-04-12

    本文导语:  看了很多文档,都是对ELF文件中的调试信息格式一带而过,包括《Linker & Loader》中也没有详细介绍。 我想获取调试信息中的数据结构相关的信息,结构大小,每个变量的名称,大小等信息。 | ...

看了很多文档,都是对ELF文件中的调试信息格式一带而过,包括《Linker & Loader》中也没有详细介绍。

我想获取调试信息中的数据结构相关的信息,结构大小,每个变量的名称,大小等信息。

|
通过objdump的命令,例如:tmp.o是elf文件,objdump参数应该为--sym
1、dump出符号表,objdumpppc --sym tmp.o > bootrom_sym.txt,内容如下:

tmp.o:     file format elf32-powerpc

SYMBOL TABLE:
02c00000 l    d  .text 00000000 
02ce7cc0 l    d  .data 00000000 
02d0a1f0 l    d  .bss 00000000 
00000000 l    d  .PPC.EMB.apuinfo 00000000 
00000000 l    d  *ABS* 00000000 
00000000 l    d  *ABS* 00000000 
00000000 l    d  *ABS* 00000000 
00000000 l    df *ABS* 00000000 bootConfig.c
02ce7da8 l     O .data 00000078 netIf
02ce7e2c l     O .data 00000004 trapValue1
02ce7e30 l     O .data 00000004 trapValue2
02ce7f34 l     O .data 00000044 noticeChar.0
02d0a674 l     O .bss 00000004 noticeNum.1
02d0a678 l     O .bss 00000004 memTestRoundPass
02ce7f78 l     O .data 00000004 SEED_X
02ce7f7c l     O .data 00000004 SEED_Y
02ce7f80 l     O .data 00000004 a.2
02ce7f84 l     O .data 00000004 b.3
02c00184 l     F .text 00000058 memCheckRand
02c00200 l     F .text 00000278 movinv1
02c00478 l     F .text 000001d8 addr_tst1
02c00650 l     F .text 00000184 addr_tst2
02c007d4 l     F .text 00000284 modtst
02c00a58 l     F .text 00000204 movinvr
02c00c5c l     F .text 00000340 movinv32
02c00f9c l     F .text 00000188 bit_fade
02c01124 l     F .text 000003bc enhancedMemCheckMainLoop
02c014e0 l     F .text 000001d8 patchVecBase
02c018a0 l     F .text 00000184 CheckRam
02c093a4 l     F .text 000000c8 usrBootLineInit
02c08840 l     F .text 00000080 go
.....................................................

2、dump出汇编,objdumpppc --disassemble tmp.o > bootrom_asm.txt,内容如下:

tmp.o:     file format elf32-powerpc

Disassembly of section .text:

02c00000 :
 2c00000: 94 21 ff f8  stwu r1,-8(r1)
 2c00004: 7c 08 02 a6  mflr r0
 2c00008: 90 01 00 0c  stw r0,12(r1)
 2c0000c: 4c c6 31 82  crclr 4*cr1+eq
 2c00010: 48 00 16 a9  bl 2c016b8 
 2c00014: 80 01 00 0c  lwz r0,12(r1)
 2c00018: 38 21 00 08  addi r1,r1,8
 2c0001c: 7c 08 03 a6  mtlr r0
 2c00020: 4e 80 00 20  blr

02c00024 :
 2c00024: 94 21 ff f8  stwu r1,-8(r1)
 2c00028: 7c 08 02 a6  mflr r0
 2c0002c: 90 01 00 0c  stw r0,12(r1)
 2c00030: 48 08 88 09  bl 2c88838 
 2c00034: 48 0c 7b b9  bl 2cc7bec 
 2c00038: 48 09 70 15  bl 2c9704c 
 2c0003c: 48 0c 49 41  bl 2cc497c 
 2c00040: 48 0c 65 49  bl 2cc6588 
 2c00044: 48 0c 51 29  bl 2cc516c 
 2c00048: 48 0c 1f cd  bl 2cc2014 
 2c0004c: 48 0c a9 ed  bl 2ccaa38 
 2c00050: 48 0c 2e 19  bl 2cc2e68 
 2c00054: 3c a0 02 db  lis r5,731
 2c00058: 3d 20 02 cf  lis r9,719
 2c0005c: 80 89 4a 38  lwz r4,19000(r9)
 2c00060: 3c 60 02 db  lis r3,731
 2c00064: 38 c0 01 00  li r6,256
 2c00068: 38 a5 c6 14  addi r5,r5,-14828
 2c0006c: 38 63 b9 48  addi r3,r3,-18104
 2c00070: 4c c6 31 82  crclr 4*cr1+eq
 2c00074: 48 0a 12 4d  bl 2ca12c0 
。。。。。。。。。。。

就这样,linux下面也有类似的工具。

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 我想把ELF(EXECUTABLE AND LINKABLE FORMAT)转为其它格式,寻找ELF文档!!!
  • arm-elf-gcc编译出来的elf文件如何转换成bin格式?
  • 编译生成的.o和.out文件分别是什么格式的?COFF?ELF?
  • 请教高手关于elf,bin,.out三种文件格式的概念,含义,联系,区别
  • 请大家谈谈ELF格式文件,如何装载?
  • ELF格式的问题!
  • 请问有能反汇编elf格式的程序吗?
  • Linux在PowerPc上的二进制文件格式是ELF吗?
  • Unix/ELF文件格式及病毒分析
  • arm-elf-gcc 和 arm-linux-gcc有什么区别?arm-elf-gcc里的elf代表什么?
  • ELF文件转成二进制bin文件,除了elf文件本身,是不是还需要其他信息?
  • arm-elf-gcc问题
  • 怎么找到ELF文件代码段的位置?
  • GCC连接出的是ELF还是A。OUT?
  • 要写一个Linux下的elf加载器需要哪些知识?
  • 编译arm版prelink出错,elf_与gelf_的库函数全部没有定义 iis7站长之家
  • 请问:elf文件用什么工具探壳
  • 一个ELF文件解释器的实现~~~
  • 希望了解linux中elf程序装入器的实现
  • 文件后缀.bin .axf .elf 分别说明了什么意义?
  • ELF的重定位问题
  • ELF statifier
  • ELF文件读写库 ELFIO
  • 谁有关于ELF的资料,急用……
  • 从elf文件中读变量信息
  • 动态库dlopen时候:ELF file OS ABI invalid
  • linux 编译的时候,如何与.a静态库做链接生成.elf文件?
  • 如何修改Linux下的ELF文件?非常急!
  • 编译arm版prelink出错,elf_与gelf_的库函数全部没有定义


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3