【发布时间】:2013-03-31 17:29:24
【问题描述】:
我有一个用于嵌入式系统的工作二进制文件。现在我想为它写一个补丁。补丁将被加载到主程序下方的 RAM 中,然后将从主程序中调用。问题是如何告诉 gcc 使用将从补丁中使用的某些函数的手动设置地址。换句话说:
旧代码具有sin() 功能,我可以使用 nm 找出旧代码中sin() 的地址。我的补丁代码将使用sin()(或来自主程序的其他东西),我想告诉gcc(或者可能是ld或其他东西)在链接补丁代码时使用函数sin()的静态地址.是否可以?
【问题讨论】:
-
binary图像无法做到这一点。你如何在上面运行nm?你确定你的意思是binary? -
如果确实是
binary,最好的方法是修补原始sin()以跳转到您的变体。这稍微慢一些。如果您的sin()较小,您可以直接覆盖它。 -
对不起。你当然是对的。我有一个二进制文件,但可以从未剥离的精灵中找出函数地址。