Ответ 1
Я, конечно, смещен, но вы можете посмотреть Chronon
Недавно Microsoft анонсировала "Intellitrace", функцию убийцы для VS2010 IMHO.
В основном он записывает некоторые из команд, которые программа запускала (в частности, вызовы функций), и позволяет вам легко просматривать журнал выполнения.
Есть ли аналогичная функция для инструментов с открытым исходным кодом? В частности, такая функция для Java с интеграцией Eclipse была бы неплохой.
Я, конечно, смещен, но вы можете посмотреть Chronon
gdb 7.0
имеет подобную функцию под названием ProcessRecord
. Однако ему не хватает gui
.
Он позволяет такие вещи, как:
Program received signal SIGSEGV, Segmentation fault.
0x00401150 in main () at try.c:3
3 printf("%d\n",*x);
(gdb) p x
$1 = 0x0
(gdb) watch x
Watchpoint 1: x
(gdb) reverse-continue
#...find out who was the last one to touch x
Это иногда называется "Отладка во времени", поскольку она дает вам возможность "отступить во времени" и проверить состояние вашей программы. Быстрый поиск Google включает этот разговор об поддержке eclipse для чего-то подобного (с конца 2006 года, по-видимому!).
EDIT:
Как отметил Элазар в комментариях, инструмент eclipse предназначен для разработки на основе C, а не для Java. Однако это выглядит как Omniscient Debugger - временный отладчик для Java. Похоже, что это немного мертвый проект, что немного удивительно.
Вы всегда можете взломать его самостоятельно, используя рамки AOP, такие как AspectJ - Регистрация является одним из наиболее часто упоминаемых аспектов.