Objdump使用-S选项提供Segmentation Fault

时间:2014-06-26 06:20:39

标签: c segmentation-fault cygwin elf objdump

我正在尝试使用objdump来显示源代码以及使用-S选项进行反汇编。我在cygwin上运行objdump。我在cygwin上为ARM构建了objdump。编译器的构建是gcc。

elf文件是使用TI ARM编译器使用Thumb2指令集为ARM处理器构建的。

我能够运行objdump来提取反汇编(使用-d选项)。 但是,当我尝试使用它来显示源代码时,我收到了分段错误。 它一到达.text部分就会崩溃。使用objdump -Mforce-thumb -S prog.out的输出是:

  

prog.out:文件格式elf32-littlearm

     

反汇编.text:

     

000000c0 <add_function>
  分段错误(核心转储)

1 个答案:

答案 0 :(得分:0)

Objdump不是反编译器,而是反汇编程序。如果二进制文件没有使用反拆卸技巧,则拆卸(相对)简单。相反,反编译是一件非常困难的事情,而objdump并没有尝试这样做。如果二进制包含它,它只能转储源。这对于原生二进制文件来说并不常见,但据我所知,Java二进制文件往往包含源代码。