【发布时间】:2012-03-01 13:43:08
【问题描述】:
我有一个tool 来生成我的 C 程序运行时的快照,以核心文件的形式。
是否可以将这些核心文件作为可执行程序恢复活力?如果是这样,我该怎么做?是否有任何图书馆已经这样做了?
我正在开发 *nix 系统。
【问题讨论】:
-
我似乎记得有一个 Perl“编译器”做了类似的事情。
我有一个tool 来生成我的 C 程序运行时的快照,以核心文件的形式。
是否可以将这些核心文件作为可执行程序恢复活力?如果是这样,我该怎么做?是否有任何图书馆已经这样做了?
我正在开发 *nix 系统。
【问题讨论】:
是的,理论上是这样。
如果您的快照是程序的整个内存、堆栈、堆以及 PC 的完整转储,则可以将此转储放回内存中并再次启动执行过程。但我认为您必须在内核领域执行此操作。
【讨论】:
GDB 会为你做这件事。我已经将它用于已经崩溃的程序,创建了一个核心,但这在理论上应该没有什么不同。
【讨论】:
gdb executable_file core_file) 探索核心文件,但这与将核心文件转换回可执行文件不同