看了很多文档,都是对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  .text00000000

02ce7cc0 l    d  .data00000000

02d0a1f0 l    d  .bss00000000

00000000 l    d  .PPC.EMB.apuinfo00000000

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 .data00000078 netIf

02ce7e2c l     O .data00000004 trapValue1

02ce7e30 l     O .data00000004 trapValue2

02ce7f34 l     O .data00000044 noticeChar.0

02d0a674 l     O .bss00000004 noticeNum.1

02d0a678 l     O .bss00000004 memTestRoundPass

02ce7f78 l     O .data00000004 SEED_X

02ce7f7c l     O .data00000004 SEED_Y

02ce7f80 l     O .data00000004 a.2

02ce7f84 l     O .data00000004 b.3

02c00184 l     F .text00000058 memCheckRand

02c00200 l     F .text00000278 movinv1

02c00478 l     F .text000001d8 addr_tst1

02c00650 l     F .text00000184 addr_tst2

02c007d4 l     F .text00000284 modtst

02c00a58 l     F .text00000204 movinvr

02c00c5c l     F .text00000340 movinv32

02c00f9c l     F .text00000188 bit_fade

02c01124 l     F .text000003bc enhancedMemCheckMainLoop

02c014e0 l     F .text000001d8 patchVecBase

02c018a0 l     F .text00000184 CheckRam

02c093a4 l     F .text000000c8 usrBootLineInit

02c08840 l     F .text00000080 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 stwur1,-8(r1)

2c00004:7c 08 02 a6 mflrr0

2c00008:90 01 00 0c stwr0,12(r1)

2c0000c:4c c6 31 82 crclr4*cr1+eq

2c00010:48 00 16 a9 bl2c016b8

2c00014:80 01 00 0c lwzr0,12(r1)

2c00018:38 21 00 08 addir1,r1,8

2c0001c:7c 08 03 a6 mtlrr0

2c00020:4e 80 00 20 blr

02c00024 :

2c00024:94 21 ff f8 stwur1,-8(r1)

2c00028:7c 08 02 a6 mflrr0

2c0002c:90 01 00 0c stwr0,12(r1)

2c00030:48 08 88 09 bl2c88838

2c00034:48 0c 7b b9 bl2cc7bec

2c00038:48 09 70 15 bl2c9704c

2c0003c:48 0c 49 41 bl2cc497c

2c00040:48 0c 65 49 bl2cc6588

2c00044:48 0c 51 29 bl2cc516c

2c00048:48 0c 1f cd bl2cc2014

2c0004c:48 0c a9 ed bl2ccaa38

2c00050:48 0c 2e 19 bl2cc2e68

2c00054:3c a0 02 db lisr5,731

2c00058:3d 20 02 cf lisr9,719

2c0005c:80 89 4a 38 lwzr4,19000(r9)

2c00060:3c 60 02 db lisr3,731

2c00064:38 c0 01 00 lir6,256

2c00068:38 a5 c6 14 addir5,r5,-14828

2c0006c:38 63 b9 48 addir3,r3,-18104

2c00070:4c c6 31 82 crclr4*cr1+eq

2c00074:48 0a 12 4d bl2ca12c0

。。。。。。。。。。。

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

c语言修改elf文件crc32,ELF文件中调试信息的格式说明?相关推荐

  1. tif文件转为shp文件_在arcgis中怎么把tif格式的遥感图像转换为矢量图

    http://bbs.3s001.com/thread-67153-1-1.html,这个帖子里有讲操作步骤 一.对影像的校准和配准 1.打开ArcMap,增加Georeferncing工具条. 2. ...

  2. .CS文件编译生成.DLL文件 .EXE文件(C#网络搜集)(转)

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

  3. .CS文件编译生成.DLL文件 .EXE文件

    如果没有VS用下面的办法 搜索csc.exe 打开cmd 转到csc.exe的文件夹 运行 csc /t:library N:\NET\cs\*.cs   N:\NET\cs\*.cs  是你的cs文 ...

  4. 面试问题-理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用

    理解数字后仿,其次针对性理解数字后仿中的sdf文件(约束文件)的作用 1)什么是sdf文件 2)如何反标sdf文件? 1,什么是数字后仿? 2,什么是门级网表? 3,什么是sdf文件 4,如何反标sd ...

  5. coredump文件的生成以及如何调试coredump文件?

    生成coredump文件的相关配置 1. 首先通过 ulimit -a 命令,查看是否允许coredump文件生成; 如下图所示,core文件大小限制为0,即:不允许core文件生成 2. 使用 ul ...

  6. PE文件和COFF文件格式分析——节信息

    在<PE文件和COFF文件格式分析--签名.COFF文件头和可选文件头3>中,我们看到一些区块的信息都有偏移指向.而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的 ...

  7. python读文件操作-python文件操作读取文件写入文件

    读取文件 要使用文本文件中的信息,首先需要将信息读取到内存中.为此,你可以一次性读取文件的全部内容,也可以以每次一行的方式逐步读取. 读取整个文件 要读取文件,需要一个包含几行文本的文件.下面首先来创 ...

  8. vs2010下使用dmp文件和pdb文件调试时dump、exe和pdb三个文件要保持版本一致的原因

    一.pdb文件简介 英文:Program Data Base,即程序的基本数据,是 VS 编译链接时生成的文件. pdb文件主要存储了如下调试信息: (1)public,private 和 stati ...

  9. c语言修改elf文件crc32,hash/crc32

    import "hash/crc32" 概述 索引 示例 概述 Package crc32 实现32位循环冗余校验或CRC-32校验和.有关信息,请参阅http://en.wiki ...

最新文章

  1. MYSQL远程连接数据库
  2. coursera—吴恩达Machine Learning笔记(1-3周)
  3. java8电脑版安装包下载百度云_everything电脑文件搜索工具
  4. 这三位同学的名字绝了!笑得肚子疼......
  5. CentOS忘记普通用户密码解决办法
  6. hbuild json红叉_MUI+Hbuilder之踩坑(三)
  7. linux 设置dns缓存周期,如何解决DNS缓存时间问题
  8. TensorFlow安装中遇到的问题
  9. afnetworking 和 asihttprequest 强制修改http连接的host地址
  10. attention的前世今生
  11. 网络通信基础——网络协议
  12. RPC调用和HTTP调用的区别
  13. 【VIP视频网站项目一】搭建视频网站的前台页面(导航栏+轮播图+电影列表+底部友情链接)
  14. TensorFlow-gpu安装和测试(TensorFlow-gpu1.14+Cuda10)
  15. 嗖嗖移动大厅JAVA(免费源码分享)
  16. 分析完百年飞机空难数据,我发现了这几条“保命”小秘诀
  17. java中级程序员全面学习路线教程
  18. FPGA之道(11)FPGA芯片的供电系统
  19. “滴滴出行” 成长路径分析(2016年01月19日)
  20. 【python】django实现扫码签到

热门文章

  1. 腾讯云安全专家 Killer 告诉你,企业上云怎么做更安全
  2. TensorFlow MNIST CNN LeNet5模型
  3. 【PAT甲级 火星数字】1100 Mars Numbers (20 分)Java 全部AC
  4. 【PAT甲级 排序】1096 Consecutive Factors (20 分) C++ 全部AC
  5. 红帽linux iso镜像,红帽 Red Hat Linux相关产品iso镜像下载
  6. XSS跨站脚本攻击在Java开发中防范的方法
  7. 操作系统中的同步和异步
  8. postman根据请求内容生成对应的代码(Java、Go、C语言等)
  9. Leecode题解汇总(附题型归类)
  10. C语言满分代码:1018 锤子剪刀布 (20分)(解题报告)