如何从填充部分停止 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_fileobjdump -h new_file 的信息是否会带来任何启发?我想知道其中一个部分是否标记为 ALLOC 和 !LOAD 或其他内容(因此它实际上在原始文件中并没有占用太多空间)但正在被 objcopy... 扩展 【参考方案1】:

解决了! 问题是这些部分是一个接一个的,但不在同一段。 一个在 W E 段中,一个在 R W 段中。 这就是为什么 objcopy 搞砸了。

【讨论】:

以上是关于如何从填充部分停止 objcopy的主要内容,如果未能解决你的问题,请参考以下文章

如何更改从 NSFetchedResultsControler 填充的 UITableview 中部分的显示顺序?

检测自动填充和停止对焦

如何从图像画布中裁剪颜色部分?

如何将四列中的函数填充到A列中的数据停止的位置?

从 Firebase 更新值后,如何停止 reloadData 滚动到我的应用顶部?

当我们在文本和图像之间切换按钮内容时,如何停止 SwiftUI 更改固定填充?