【问题标题】:Backtracking in Java debugJava调试中的回溯
【发布时间】:2012-01-04 11:04:09
【问题描述】:

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

int x = 1
int y = 0

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

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

提前致谢。

【问题讨论】:

    标签: java debugging backtrace


    【解决方案1】:

    有一个叫Chronon Time Travelling Debugger的工具

    它声称...

    概览

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        你试过Omniscient debugger吗?

        【讨论】:

        • 是的,我已经调查过了。尽管它看起来很不错,但我只能查看已经运行的执行,我希望能够在后退后实际更改值,并让程序朝着新的方向运行。
        • @StefanE 如果您更改代码来执行此操作,您会喜欢吗?我会修复代码,让它以这种方式工作。
        • @StefanE 你能回答这个问题吗:stackoverflow.com/questions/9686946/…
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-12
        相关资源
        最近更新 更多