【发布时间】:2013-04-08 10:47:20
【问题描述】:
我正在开发一个程序来进行编译后优化。因为我注意到有一些特殊情况 gcc 不能很好地优化,即使在 -O3 时也是如此。
是否有一个库可以让我将二进制文件 (x86) 加载到适合编辑的数据结构中,然后再将其写出来?我还希望它处理更新所有内存偏移量,因为编辑可能会改变二进制文件的大小。
【问题讨论】:
-
反汇编,用你喜欢的任何工具编辑反汇编的代码,然后汇编?
-
难道不能让 gcc 输出 asm(选项 -S),编辑该文件,然后编译编辑后的 .s 文件吗?或者更好的是,修补 gcc 以便它做得更好?顺便问一下,gcc 的 bugzilla 中是否有关于那些错过的优化的条目?
-
查看 objdump 及其代码。
-
@MarcGlisse,是的,这是我目前正在尝试解决的问题:gcc.gnu.org/bugzilla/show_bug.cgi?id=56493
标签: gcc assembly compiler-construction x86 disassembly