1

我一直在寻找在进行 Java 调试时是否可以回溯的答案。例如,如果我有代码:

int x = 1
int y = 0

//Exception will happen here
int z = x/y

如果我遇到异常,我想回去。不仅像丢弃框架,而且还恢复对堆所做的实际更改。目前有可能吗?

提前致谢。

4

3 回答 3

2

有一个名为Chronon Time Traveling Debugger的工具

它声称...

概述

Chronon 时间旅行调试器允许您回放 Chronon 记录并轻松找到缺陷的根本原因。它是专门从头开始构建的,允许调试运行数天/数月且高度多线程的长时间运行程序。

调试器无缝插入 Eclipse,使其自然适应您的工作流程。您还可以使用 Chronon Debugger 的 Eclipse 集成从 Eclipse 中轻松地在您的开发机器上记录程序。

于 2012-01-04T11:15:44.477 回答
1

您是否尝试过Omniscient 调试器

于 2012-01-04T11:13:30.280 回答
1

除非您实现某种撤消堆栈,否则这是不可能的,这取决于您所做的,可能是极端的过度工程。如果您使堆对象不可变,并且仅在一切完成后才更改调用者可见的指针而不抛出异常,那么您将获得所需行为的相对较好的近似值,但是很难使线程- 安全而不使用过度同步,并且可以生成大量样板代码,这些代码不会为流程增加很多价值......

于 2012-01-04T11:07:52.513 回答