【问题标题】:possible to revive a corefile back into a running program?可以将核心文件恢复到正在运行的程序中吗?
【发布时间】:2012-03-01 13:43:08
【问题描述】:

我有一个tool 来生成我的 C 程序运行时的快照,以核心文件的形式。

是否可以将这些核心文件作为可执行程序恢复活力?如果是这样,我该怎么做?是否有任何图书馆已经这样做了?

我正在开发 *nix 系统。

【问题讨论】:

  • 我似乎记得有一个 Perl“编译器”做了类似的事情。

标签: c++ c debugging core-file


【解决方案1】:

是的,理论上是这样。

如果您的快照是程序的整个内存、堆栈、堆以及 PC 的完整转储,则可以将此转储放回内存中并再次启动执行过程。但我认为您必须在内核领域执行此操作。

【讨论】:

    【解决方案2】:

    GDB 会为你做这件事。我已经将它用于已经崩溃的程序,创建了一个核心,但这在理论上应该没有什么不同。

    【讨论】:

    • 你能解释一下如何用 gdb 来做吗?我可以使用 gdb (gdb executable_file core_file) 探索核心文件,但这与将核心文件转换回可执行文件不同
    • 哦...我想我误解了你的最终目标。所以目标是允许人们以与之前运行类似的方式“恢复”可执行文件?如果是这样,我可能会采取不同的行动,将我关心的数据序列化到一个文件中,并在我的可执行文件启动时检查该文件。
    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 2013-11-25
    • 2016-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多