我需要测试一个程序,我正在编写一个病态的角落案例。为此,我想编译一个程序集文件,以便.text部分远离它后面的部分。
也就是说,当我在编译文件上运行objdump -h
时,我想要这样的东西:
12 .text 00000204 0000000000400400 0000000000400400 00000400 2**4
CONTENTS, ALLOC, LOAD, READONLY, CODE
13 .fini 00000016 0000000000500000 0000000000500000 00000604 2**2
请注意,一个部分的结尾与另一个部分的开头之间有很大的差距。 我已经修改了命令的输出来说明我想要的东西,所以如果输出中的某些内容没有意义,那就是因为它。
答案 0 :(得分:2)
...你想知道如何强制链接器创建这样的文件吗?
您可以手动编写链接脚本并使用" -T filename" " ld"的选项(" -Wl,-T,文件名"选项" gcc")。
答案 1 :(得分:0)
使用-Wl,--section-start=.text=0x100000 -Wl,--section-start=.data=0x400000
运行汇编程序为我完成了工作。