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

Jer*_*ood 4 c gcc objdump

我想生成像这个问题的答案中的组件使用GCC生成可读组件?

对于简单的测试代码:test.c

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

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

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

但我得到的是程序集以.init部分开头, 080482bc<_init>:以.fini部分结束080484cc<_fini>

我不希望他们出现.

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

Som*_*ude 5

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

如果要创建目标文件,请使用-cGCC标志.