我一直在寻找在进行Java调试时是否可以回溯的答案。例如,如果我有以下代码:
int x = 1
int y = 0
//Exception will happen here
int z = x/y如果我遇到了异常,我想回到过去。而且不仅仅是丢弃帧,还可以恢复对堆所做的实际更改。这目前是可能的吗?
提前谢谢。
发布于 2012-01-04 19:15:44
有一个叫做Chronon Time Travelling Debugger的工具
它声称。
概述
Chronon时间旅行调试器允许您回放Chronon录音,并轻松找到缺陷的根本原因。它是专门从底层构建的,允许调试长时间运行的程序,这些程序运行几天/几个月,并且是高度多线程的。
调试器无缝地插入到Eclipse中,自然地适应您的工作流程。您还可以使用Eclipse集成的Chronon调试器,从Eclipse.中轻松地在开发机器上记录程序
发布于 2012-01-04 19:07:53
这是不可能的,除非你实现了某种撤销堆栈,这取决于你做了什么,这可能是极端的过度工程。如果您将堆对象设置为不可变的,并且仅在所有操作完成后才更改调用者可见的指针,而不抛出异常,那么您将获得与所需行为相对较好的近似效果,但是如果不使用过多的同步,则很难使其线程安全,并且可能会生成大量样板代码,这些代码不会为进程增加很多价值……
发布于 2012-01-04 19:13:30
你试过Omniscient debugger吗?
https://stackoverflow.com/questions/8725757
复制相似问题