如何从填充部分停止 objcopy
Posted
技术标签:
【中文标题】如何从填充部分停止 objcopy【英文标题】:how to stop objcopy from padding sections 【发布时间】:2012-06-26 19:16:07 【问题描述】:我在 bash (ubuntu linux) 上使用 objcopy,并尝试使用以下命令从 ELF 文件中复制 2 个部分:
objcopy -j .section1 -j .section2
问题是 objcopy 在部分之间添加了一些填充。有没有办法(标志?)可以阻止 objcopy 填充部分?
这些部分在文件中一个接一个地放置,因此不需要任何类型的填充......
【问题讨论】:
填充多少?由于部分对齐需要或其他原因可能需要它 - 不确定 ELF 规范对此有何规定...... 很多填充。部分的大小是 8293 字节,objcopy 的输出是 3192837 字节.... 好吧,这不仅仅是填充......比较来自objdump -h orig_file
和objdump -h new_file
的信息是否会带来任何启发?我想知道其中一个部分是否标记为 ALLOC 和 !LOAD 或其他内容(因此它实际上在原始文件中并没有占用太多空间)但正在被 objcopy
... 扩展
【参考方案1】:
解决了! 问题是这些部分是一个接一个的,但不在同一段。 一个在 W E 段中,一个在 R W 段中。 这就是为什么 objcopy 搞砸了。
【讨论】:
以上是关于如何从填充部分停止 objcopy的主要内容,如果未能解决你的问题,请参考以下文章
如何更改从 NSFetchedResultsControler 填充的 UITableview 中部分的显示顺序?