У меня есть консольное приложение, написанное на Free Pascal, которое, как и большинство более крупных приложений, иногда падает. Поскольку это приложение работает, я обычно прошу людей записать меня при трассировке стека - я распространяю его вместе с debug и lineinfo. Однако приложение использует вывод FPC video.pas, и иногда трассировка стека вывода текста не отображается.
Есть ли способ перехватить текст, написанный на необработанных исключениях, С помощью трассировки стека, чтобы я мог записать его в файл? Я не могу просто передать стандартную ошибку в файл, потому что видео FPC почему-то не работает с этим, а также я хотел бы, чтобы люди просто запускали исполняемый файл, а не пакетный файл или файл оболочки.
В качестве примера я хотел бы перехватить это в файле или другом источнике вывода:
ERangeError : Range check error∙
$0048C0EA TCELLS__GETCELL, line 104 of dfmap.pas
$004AD133 TDOOMGENERATOR__GENERATECITYDUNGEON, line 397 of dfdungen.pas
$004AF87D TDOOMGENERATOR__GENERATE, line 760 of dfdungen.pas
$0041293B TDOOM__RUN, line 354 of doombase.pas
$00401CD6 main, line 51 of doomrl.pas
Есть ли возможность сделать это чисто?