На днях надо бы собрать свой ToDo список из предложенных идей.
Насчёт инструмента.
Решил таки оставить Лазарус, уж очень подходит он под этот проект.
Сейчас занялся подбором реализации отладки проекта.
Тут есть два варианта, и какой из них выбрать, ещё не знаю...
В общем:
1) Сборка проекта с отладочной информацией: в этом случае размер файла составляет 15+ мегабайт, на производительность не влияет, зато в случае ошибки, мы на месте получаем всю необходимую информацию которая попадёт в файл Trace.log
Пример Trace.log с бесконечной рекурсией
Program exception!
Exception class: Exception
Message: Unknown Run-Time error : 202
Stacktrace:
$000000000042DA58 TEST, line 65 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
$000000000042DA5D TEST, line 66 of unit1.pas
2) Сборка проекта с отладочной информацией в отдельном файле (*.dbg).
В этом случае, размер проекта значительно меньше - 2 мегабайта без сжатия, но в случае ошибки, мы получаем вот такую информацию:
Пример Trace.log с бесконечной рекурсией
Program exception!
Exception class: Exception
Message: Unknown Run-Time error : 202
Stacktrace:
$000000000042DA58
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
$000000000042DA5D
gdb -symbol тут_собственно_файл_с_отладочной_информацией.dbg
info line *0x000000000042DA58 //достаём строку с ошибкой
Reading symbols from D:PCSySDesktopTest/project1.dbg...done.
(gdb) info line *0x000000000042DA58
Line 66 of "unit1.pas" starts at address 0x42da58 <TEST+8>
and ends at 0x42da5d <TEST+13>.
(gdb)