所以基本上我有一些在Linux32位上编译的ELF二进制文件。我想在我的Mac64位上分析它。我正在尝试使用自制软件安装的gnu实用程序,例如gobjdump和greadelf。但是,当我尝试使用gobjdump解析elf二进制文件时,出现了这个错误:gobjdump:hello:Fileformatisambiguousgobjdump:Matchingformats:elf32-i386-naclelf32-i386-sol2elf32-i386-vxworkself32-i386所以我的问题是:是否可以使用其gnuutils在MAC上分析32位Linux编译的ELF二进制文件?如
我目前正在构建裸机可执行文件,其中包含一些包含代码的特殊部分。但是,当我执行objdump-d时,我只获得了.text和.init.text部分的代码。objdump的联机帮助页仅说明在使用-d选项时它“仅反汇编那些预期包含指令的部分”。这些是什么部分,objdump如何判断要解码哪些部分?我知道我也可以使用-D选项来获得所有部分的完整解码,但这通常比我需要的要多得多。 最佳答案 objdump内部使用libbfd获取部分信息。objdump将回调传递给bfd_map_over_sections(),后者调用每个部分的回调。调用时,
我目前正在构建裸机可执行文件,其中包含一些包含代码的特殊部分。但是,当我执行objdump-d时,我只获得了.text和.init.text部分的代码。objdump的联机帮助页仅说明在使用-d选项时它“仅反汇编那些预期包含指令的部分”。这些是什么部分,objdump如何判断要解码哪些部分?我知道我也可以使用-D选项来获得所有部分的完整解码,但这通常比我需要的要多得多。 最佳答案 objdump内部使用libbfd获取部分信息。objdump将回调传递给bfd_map_over_sections(),后者调用每个部分的回调。调用时,
我试过这个,但坚持回答下面的问题,其中hello_world-1.c是#includeintmain(void){printf("Helloworld\n");return0;}执行的命令:[kishore@localhost-localdomain~]$gcc-Wall-Wextra-chello_world-1.c[kishore@localhost-localdomain~]$gcc-ohello_world-1hello_world-1.o[kishore@localhost-localdomain~]$sizehello_world-1hello_world-1.otextd
我试过这个,但坚持回答下面的问题,其中hello_world-1.c是#includeintmain(void){printf("Helloworld\n");return0;}执行的命令:[kishore@localhost-localdomain~]$gcc-Wall-Wextra-chello_world-1.c[kishore@localhost-localdomain~]$gcc-ohello_world-1hello_world-1.o[kishore@localhost-localdomain~]$sizehello_world-1hello_world-1.otextd
objdump在某个目标文件上有这样的输出:$objdump-hmain.omain.o:fileformatelf32-i386Sections:IdxNameSizeVMALMAFileoffAlgn0.text0000000b0000000000000000000000342**2CONTENTS,ALLOC,LOAD,READONLY,CODE1.data000000000000000000000000000000402**2CONTENTS,ALLOC,LOAD,DATA2.bss000000000000000000000000000000402**2ALLOC3.note.
objdump在某个目标文件上有这样的输出:$objdump-hmain.omain.o:fileformatelf32-i386Sections:IdxNameSizeVMALMAFileoffAlgn0.text0000000b0000000000000000000000342**2CONTENTS,ALLOC,LOAD,READONLY,CODE1.data000000000000000000000000000000402**2CONTENTS,ALLOC,LOAD,DATA2.bss000000000000000000000000000000402**2ALLOC3.note.
我在linux中有一个文件夹,其中包含几个共享对象文件(*.so)。我如何在Linux中使用objdump和bash函数在共享对象文件中查找函数?例如,下面的例子是在mylib.so中找到我的函数func1:objdump-dmylib.so|grepfunc1但我想在包含共享对象文件的文件夹中找到func1。我不知道bash语言以及如何组合linux终端命令。 最佳答案 对于此任务,nm比objdump更简单。nm-A*.so|grepfunc应该可以工作。-A标志告诉nm打印文件名。
我在linux中有一个文件夹,其中包含几个共享对象文件(*.so)。我如何在Linux中使用objdump和bash函数在共享对象文件中查找函数?例如,下面的例子是在mylib.so中找到我的函数func1:objdump-dmylib.so|grepfunc1但我想在包含共享对象文件的文件夹中找到func1。我不知道bash语言以及如何组合linux终端命令。 最佳答案 对于此任务,nm比objdump更简单。nm-A*.so|grepfunc应该可以工作。-A标志告诉nm打印文件名。
我有一个C++目标文件,其中包含一些C++模板函数的实例化。有问题的目标文件为模板参数的几个不同组合实例化了相同的函数。我正在尝试调试问题,并想查看模板函数的特定实例化的反汇编(即,我知道要检查的函数的模板参数)。我通常会使用objdump来反汇编目标文件,但它(至少在默认情况下)无法对C++函数名称进行反分解。有没有办法做到这一点?目标文件是使用gcc4.6.1创建的。 最佳答案 objdump-C-C标志启用去重:printf'templateTadd(Tx,Ty){returnx+y;}voidh(){add(1,2);add