资源描述:
《GCC工具链其他工具简介》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、OBJ文件格式分析工具:objdump,nm,ar前言如果普通编程不需要了解这些东西,如果想精确控制你的对象文件的格式或者你想查看一下文件对象里的内容以便作出某种判断,刚你可以看一下下面的工具:objdump,nm,ar。当然,本文不可能非常详细的说明它们的使用方法和功能。如果你觉得本文不够清楚,你可以使用:man.我的计划只是想让更多的人了解这些工具,以后在今后的编程过程中能有所帮助。开始·objdump 文件命令功能强的惊人。能实现上述两个命令(ar,nm)的很多功能。它主要是查看对象文件的内容信息。·常用法:·objdump-hfile<.o,.a,.out>/
2、/查看对象文件所有的节sections.例如:#objdump-hlibtest1.olibtest1.o: fileformatelf32-i386Sections:IdxName Size VMA LMA Fileoff Algn 0.text 00000014 00000000 00000000 00000034 2**2 CONTENTS,ALLOC,LOAD,RELOC,READONLY,CODE 1.data 00000000 00000000 00000000
3、00000048 2**2 CONTENTS,ALLOC,LOAD,DATA 2.bss 00000000 00000000 00000000 00000048 2**2 ALLOC 3.rodata 0000000e 00000000 00000000 00000048 2**0 CONTENTS,ALLOC,LOAD,READONLY,DATA 4.comment 0000001f 00000000 00000000 00000056 2**0
4、 CONTENTS,READONLY 5.note.GNU-stack00000000 00000000 00000000 00000075 2**0 CONTENTS,READONLY·objdump-t查看对象文件所有的符号列表,相当于nm-sobjfilename,如:#objdump-tlibtest1.olibtest1.o: fileformatelf32-i386SYMBOLTABLE:00000000l df*ABS* 00000000libtest1.c00000000l d .text
5、 00000000.text00000000l d .data 00000000.data00000000l d .bss 00000000.bss00000000l d .rodata 00000000.rodata00000000l d .note.GNU-stack 00000000.note.GNU-stack00000000l d .comment 00000000.comment00000000g F.text 00000014print_test100000000 *UND* 00000
6、000puts·更多信息请查看选项:--archive-headers-a显示档案库的成员信息,与artv类似 objdump-alibpcap.a 和ar-tvlibpcap.a显示结果比较比较 显然这个选项没有什么意思。--adjust-vma=offset When dumping information,firstaddoffsettoall thesectionaddresses. Thisisusefulifthe sec- tion addresses do notcorrespond tothesymbol table,wh
7、ichcanhappenwhen putting sections at particular addresseswhenusingaformatwhichcan notrepresentsectionaddresses,suchasa.out.-bbfdname--target=bfdname 指定目标码格式。这不是必须的,objdump能自动识别许多格式, 比如:objdump-boasys-mvax-hfu.o 显示fu.o的头部摘要信息,明确指出该文件是Vax系统下用Oasys 编译器生成的目标文件。objdu