GDB 的一个奇怪而有用的功能是过程记录,它允许分析人员在执行过程中前进和后退,编写程序状态更改的连续日志,从而可以非常准确地回放程序代码。
尽管我们都可以肯定地说进程记录日志包含可执行文件对各种数据和控制寄存器的更改,但其功能远不止保留当前延续的一些序列化表示。例如,我已经能够具体化使用线程修改共享内存的可执行文件的状态。
当然,我们不能指望时间相关的代码可以工作,但是如果修改共享状态的线程代码通常可以向后步进并仍然可靠地再次工作,那么除了纯粹的架构挑战(即位移步进)之外,进程记录还有什么限制?文档中指定的?