如何使objdump显示部分汇编只出现在源代码中?

时间:2013-10-19 16:03:46

标签: c gcc objdump

我想生成像这个问题Using GCC to produce readable assembly?

的答案中的汇编

简单测试代码:test.c

void main(){
   int i;
   for(i=0;i<10;i++){
   printf("%d\n",i);
   }
} 

gcc命令:gcc -g test.c -o test.o

objdump命令:objdump -d -M intel -S test.o

但我得到的是装配以.init部分开头    080482bc<_init>:以.fini部分080484cc<_fini>

结尾

我不希望它们出现。

为什么会这样?如何避免显示不在源文件中的部分?

2 个答案:

答案 0 :(得分:5)

现在你正在创建一个可执行文件,而不是一个目标文件。可执行文件当然包含很多额外的部分。

如果要创建目标文件,请使用-c标记到GCC。

答案 1 :(得分:3)

您可以使用-j选项指定部分。

所以objdump -d executable -j .text -j .plt只会显示.text和.plt部分的反汇编。