在 GDB 7.0 之后,支持反向调试。
生成核心转储时,我可以使用反向调试命令吗?
我怎样才能做到这一点?
你不能。核心文件是程序在某个时间点的状态的快照。要在该状态下向后移动,您需要早期的程序状态快照。GDB 可以通过在调试实时程序时保留此历史记录来做到这一点,但此信息不存在于核心文件中。
有关反向调试如何在 GDB中工作的完整描述,请参阅此问题。
有关反向执行的更深入讨论,请参见http://jakob.engbloms.se/archives/1547 。从根本上说,您需要看到过去才能回到过去,您无法从语义上逆转计算机程序。也就是说,给定一个比 gdb 更强大的逆向系统,您确实可以逆向执行以摆脱程序崩溃甚至系统崩溃。这只是在运行失败案例时应用可逆调试器的问题。