2012-01-04 4 views
1

Javaデバッグ時にバックトラックすることができるかどうかの回答を探しています。たとえば、コードを持っている場合:Javaデバッグのバックトラッキング

int x = 1 
int y = 0 

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

そして、私が例外に当たっていたら、私は戻ってみたいと思います。 フレームを削除するだけでなく、実際の変更をヒープに戻すこともできます。 これは現在可能ですか?

ありがとうございます。

答えて

2

...

概要

Chronon時間旅行デバッガ

あなたはChronon 録音を再生し、簡単に欠陥の根本原因を見つけることができます。具体的には を土台にビルドして長時間実行しているプログラム をデバッグすることができます。これは数日/月間実行され、高度にマルチスレッド化されています。

デバッガはEclipseにシームレスに接続して、ワークフローに自然に適応します 。 ChrononデバッガーのEclipse統合を使用して、Eclipse内の開発マシン に簡単にプログラムを記録することもできます。

1

何かのアンドゥ・スタックを実装しない限り不可能です。これは、あなたのやることに応じて、極端なオーバーエンジニアリングになる可能性があります。ヒープオブジェクトを変更できず、例外をスローせずにすべてが完了したときに呼び出し側に表示されるポインタのみを変更すると、あなたは望む振る舞いを比較的よく近似できますが、スレッドを作るのは難しいでしょう-safeを使用せずに、プロセスに多くの価値を追加しない定型コードを生成する可能性があります。

1

Omniscient debuggerを試しましたか? Chronon Time Travelling Debugger

それは主張と呼ばれるツールがあり

+0

はい私はそれを調べました。とてもうまく見えますが、すでに実行されている実行のみを見ることができます。実際に値を変更した後に値を変更し、新しい方向にプログラムを実行できるようにしたいと考えています。 – StefanE

+0

@StefanEこれを行うコードを変更した場合はどうでしょうか?私はちょうどそれがこのように働くようにコードを修正するだろう。 –

+0

@StefanEこの質問にお答えください。http://stackoverflow.com/questions/9686946/how-to-use-omniscient-debugger –