[fpc-pascal] Logging full runtime-error/exception backtrace
Sven Barth
pascaldragon at googlemail.com
Mon Feb 20 16:15:14 CET 2012
Am 20.02.2012 15:58, schrieb leledumbo:
> I want to log the full runtime-error/exception backtrace to a file. I've
> tried all methods explained
> http://wiki.lazarus.freepascal.org/Logging_exceptions here but none seems
> to give the full backtrace. i.e. when compiled with -gl, instead of just the
> address, I could also get "line NN of file XX.pas". How could I do it?
The resolution of file and address can only be done if your code is a)
compiled with debug info and b) some code is available that can
translate the debug info to the output. The first is done by "-g", while
the second is done by adding the "l" option. The latter adds the unit
lineinfo or lnfodwrf depending on the debug format used by the compiler.
So in summary: if you want to have full output of the backtrace, then it
is wisest to use "-gl" and then one of the approaches mentioned on the
wiki page (e.g. DumpExceptionBackTrace(SomeFile) ).
If you don't want to include the debug information with your application
(e.g. space reasons) then compile your application using "-Xg" which
will create a file "appname.dbg" which will contain the debug info (you
don't need to redistribute this file). On an exception you simply log
the addresses and then you can convert these addresses to line/file by
using gdb and the created ".dbg" file (more details on this if you want
to follow that approach).
Regards,
Sven
More information about the fpc-pascal
mailing list