Альтернатива с открытым исходным кодом для "Intellitrace"

Недавно Microsoft анонсировала "Intellitrace", функцию убийцы для VS2010 IMHO.

В основном он записывает некоторые из команд, которые программа запускала (в частности, вызовы функций), и позволяет вам легко просматривать журнал выполнения.

Есть ли аналогичная функция для инструментов с открытым исходным кодом? В частности, такая функция для Java с интеграцией Eclipse была бы неплохой.

Ответы

Ответ 1

Я, конечно, смещен, но вы можете посмотреть Chronon

Ответ 2

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

Ответ 3

Это иногда называется "Отладка во времени", поскольку она дает вам возможность "отступить во времени" и проверить состояние вашей программы. Быстрый поиск Google включает этот разговор об поддержке eclipse для чего-то подобного (с конца 2006 года, по-видимому!).

EDIT:

Как отметил Элазар в комментариях, инструмент eclipse предназначен для разработки на основе C, а не для Java. Однако это выглядит как Omniscient Debugger - временный отладчик для Java. Похоже, что это немного мертвый проект, что немного удивительно.

Ответ 4

Вы всегда можете взломать его самостоятельно, используя рамки AOP, такие как AspectJ - Регистрация является одним из наиболее часто упоминаемых аспектов.