2012-01-04 40 views
1

我一直在尋找一個答案,以便在進行Java調試時能夠回溯。例如,如果我有代碼:Java中的回溯調試

int x = 1 
int y = 0 

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

如果我遇到異常,我想回去。 而不僅僅是丟棄框架,還恢復對堆進行的實際更改。 目前可行嗎?

在此先感謝。

回答

2

有工具稱爲Chronon Time Travelling Debugger

它聲稱...

概述

的Chronon時間旅行調試器允許你播放Chronon 錄音,方便地找到缺陷的根本原因。它特別是從底層構建的 ,以允許長時間運行的程序 的調試運行幾天/幾個月並且是高度多線程的。

調試器可以無縫地插入Eclipse,自然地將 自適應到您的工作流程。您還可以使用Chronon調試器的Eclipse集成功能輕鬆在Eclipse中記錄您的開發機器上的程序 。

1

這是不可能的,除非你實施某種撤銷堆棧,這取決於你做什麼,可能是極端的過度工程。如果你讓你的堆對象不可變,並且只改變了對調用者可見的指針,而不會拋出異常,那麼你會得到相對較好的你想要的行爲的近似值,但是很難讓ti線程沒有使用過多的同步安全,並可以生成噸的樣板代碼,不會增加很多價值的過程...

1

你試過Omniscient debugger

+0

是的我已經看過。儘管它看起來很不錯,但我只能看看已經運行的執行,我希望能夠在加強後實際改變值,並讓程序以新的方向運行。 – StefanE 2012-01-04 11:16:14

+0

@StefanE像你一樣,如果你改變了代碼來做到這一點?我只是修復代碼,以便這樣工作。 – 2012-01-04 12:16:42

+0

@StefanE你可以請回答這個問題:http://stackoverflow.com/questions/9686946/how-to-use-omniscient-debugger – 2012-03-13 15:30:34