考虑到我们在1年前用C++制作了一个程序,它正在连续地工作,没有任何停止!
在一年前,我们不知道有一天我们应该更新它(由于修复了一些bug)。所以我们没有在它上面实现任何DSU (动态软件更新)指令。此外,它不能在虚拟机中运行,这也让我无法访问它的内存或上下文。
现在,如何在不停止和停止的情况下在其中进行更新(添加或删除一些函数、数据类型或指令)。
有什么建议吗?谢谢。
发布于 2014-02-22 01:43:18
您必须将调试器附加到它。在不会破坏任何东西的执行点停止它,替换可执行映像,重新对齐指令指针,如果您选择了一个坏的中断点,您还必须重新对齐堆栈并修改可能受新代码影响/添加的变量。
这比你想要的麻烦多了。
如果您的修改是本地的,那么您可能会更好地使用代码洞穴作为这个特定运行实例的临时解决方案。
https://stackoverflow.com/questions/21941317
复制相似问题