[fpc-pascal] Debug information again
Jonas Maebe
jonas.maebe at elis.ugent.be
Wed Jun 13 15:12:21 CEST 2012
Antonio Fortuny wrote on Wed, 13 Jun 2012:
> I can see the memory leak I have generated (read below) but no
> refecence to the line itself. Instead I receive the reference lines
> before and after the memory leak creation inside the rtl.
The reason is that the RTL itself is compiled with optimisations. This
means that sometimes no stack frame is generated for such routines. As
a result, when crawling the stack, you will not see the *caller* of
such routines in the stack trace. The only way to work around this is
to recompile the RTL without optimisations.
FWIW, the same problem happens with any compiler that implements stack
frame optimisations (e.g., with gcc you'd have to use
-fno-omit-frame-pointer to prevent this from taking place; the
equivalent FPC parameter is -Oonostackframe).
The only solution from a distribution point of view would be to either
disable this stack frame optimisation for released units, or to
distribute two different RTL's (one compiled with and one compiled
without optimisations).
Jonas
More information about the fpc-pascal
mailing list