2012-01-04 2 views
1

Я искал ответ, если можно отступить при выполнении Java-отладки. Например, если у меня есть код:Backtracking в Java debug

int x = 1 
int y = 0 

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

И если я удалюсь за исключением, я хотел бы вернуться. И не только как опускание рамки, но и возврат фактических изменений в кучу. Возможно ли это?

Заранее спасибо.

ответ

2

Существует инструмент под названием Chronon Time Travelling Debugger

Он утверждает, что ...

Обзор

Chronon Время Путешествия Debugger позволяет воспроизводить Chronon записи и легко найти причину дефектов. Это специально построенный , позволяющий отлаживать длительные программы , которые работают в течение нескольких дней/месяцев и имеют многопоточность.

Отладчик плавно подключается к Eclipse, адаптируя себя естественно к вашему рабочему процессу. Вы также можете использовать интеграцию Eclipse от Chronon Debugger, чтобы легко записывать программы на вашем компьютере из Eclipse.

1

Это невозможно, если вы не реализуете какой-либо стека отмены, который, в зависимости от того, что вы делаете, может быть чрезмерно сложным. Если вы делаете свои объекты кучи неизменяемыми и только изменяете указатели, видимые вызывающему, как только все будет выполнено без исключения исключения, то вы получите относительно хорошее приближение к поведению, которое вы хотите, но будет сложно сделать поток ti -safe без чрезмерной синхронизации и может генерировать тонны кода шаблона, который не добавляет большого значения для процессов ...

1

Вы пробовали Omniscient debugger?

+0

Да, я изучил это. Несмотря на то, что это выглядит очень хорошо, я могу только взглянуть на уже выполненное выполнение, я хотел бы иметь возможность фактически изменять значения после того, как они были отступлены, и заставить программу работать в новом направлении. – StefanE

+0

@StefanE нравится, если бы вы изменили код, чтобы сделать это? Я бы просто исправить код, чтобы он работал таким образом. –

+0

@StefanE не могли бы вы ответить на этот вопрос: http://stackoverflow.com/questions/9686946/how-to-use-omniscient-debugger –