Pull to refresh

Comments 7

А вы уверены, что не «детерминированность»?
По-хорошему мне надо бы вообще использовать русское слово «повторяемость». Проблема в том, что устоявшегося отечественного термина я не знаю, поэтому и в статье использую то слово, которое применяю ежедневно, а оно — калька с англ. deterministic.
Текущая стабильная версия gdb 7.6.2 позволяет ставить checkpoint — это точка в которой делается snapshot состояния программы. Можно возвращаться к этим точкам и начинать отладку заново. Часто использую на практике при отладке больших программ.
Еще в документации сказано, что можно записывать исполнение программы (Process Record and Replay) для последующего проигрывания с отладкой. Также в документации говорится о возможности Reverse Execution. Эти две вещи не пробывал. Интересно было бы узнать насколько хорошо они работают.
Использую reverse execution в работе. Очень приятная возможность, но со своими ограничениями — сильно тормозит программу (код, который просто так выполняется за незаметные доли секунды, приходится ожидать секунду-две), необходимо выполнять команду record в точке, откуда хотим начать сохраняться.
Но удобно, слов нет.
А как там обстоят дела с отладкой многопоточных приложений?

P.S.: Прошу прощения за некропост :)
И точно. Приятно, что при этом поддерживаются целевые архитектуры Linux IA-32 и EM64T. И, собственно, это почти всё, что поддерживается, что печально. Не хватает других архитектур и ОС.

Надо будет попробовать более свежую версию GDB для отладки своих приложений. В теории всё просто, но хочется посмотреть на скорость работы, а также на накладные расходы по памяти.
JVM поддерживает команду drop frame, что хоть и существенно более простая операция, но на практике очень часто бывает достаточным.
Sign up to leave a comment.