我想生成像这个问题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>
我不希望它们出现。
为什么会这样?如何避免显示不在源文件中的部分?
答案 0 :(得分:5)
现在你正在创建一个可执行文件,而不是一个目标文件。可执行文件当然包含很多额外的部分。
如果要创建目标文件,请使用-c
标记到GCC。
答案 1 :(得分:3)
您可以使用-j
选项指定部分。
所以objdump -d executable -j .text -j .plt
只会显示.text和.plt部分的反汇编。