我有一个用Free Pascal编写的控制台应用程序,像大多数较大的应用程序一样,有时会崩溃。由于该应用程序是实时的,我通常会要求人们在崩溃时将堆栈跟踪记录下来--我会分发带有调试和行信息的堆栈跟踪。然而,该应用程序使用FPC video.pas输出,有时文本输出的堆栈跟踪不可见。
有没有办法拦截未处理异常时写入的文本及其堆栈跟踪,以便我可以将其写入文件?我不能只将标准错误管道传输到文件中,因为FPC video似乎与此不兼容,而且我希望人们只运行可执行文件而不是批处理或shell文件。
例如,我想将这个内容捕捉到文件或其他输出源:
有没有干净的方法来做到这一点?
有没有办法拦截未处理异常时写入的文本及其堆栈跟踪,以便我可以将其写入文件?我不能只将标准错误管道传输到文件中,因为FPC video似乎与此不兼容,而且我希望人们只运行可执行文件而不是批处理或shell文件。
例如,我想将这个内容捕捉到文件或其他输出源:
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
有没有干净的方法来做到这一点?