On Thu, Jul 14, 2005 at 01:12:23AM +0200, Marcel Martin wrote: > Tom Verhoeff a écrit : > >begin > > VMyClass := TMyClass.Create; > > //VMyClass.FP := VMyClass.P; { with this assignment, it works } > > VMyClass.FP; { this causes an Access Violation } > > Of course, at this point FP = nil since you didn't set it.
Just in case, I was not understood: The point is that there is no stack trace with line numbers on the (obviously correct) exception, in spite of the option -gl (even when explicitly using SysUtils). I admit that the comment "it works" is misleading/confusing the issue. I wrote it that way, to show that the program is otherwise fine, and that the exception should indeed be a "normal"/correctly raised exception. This may be a more general problem with SOME KINDS of unhandled exceptions stack traces/line numbers. Note that, in the following program, you do get a stack trace with line numbers: program AsssertOk; uses SysUtils; begin Assert(False, 'Assertion failed on purpose') end. when compiled with options `-Sa -gl', produces as output An unhandled exception occurred at $0806834E : EAssertionFailed : Assertion failed on purpose (assert-ok.pp, line 7) $0806834E $080540D4 $080480D1 main, line 7 of assert-ok.pp That is, you get a stack trace with line numbers. Without using SysUtils you just get (even if you compile w/o -gl): Assertion failed on purpose (assert-ok.pp, line 7). Use of SysUtils "converts" the unhandled exception. (Where is that documented?) Tom -- E-MAIL: T.Verhoeff @ TUE.NL | Fac. of Math. & Computing Science PHONE: +31 40 247 41 25 | Eindhoven University of Technology FAX: +31 40 247 54 04 | PO Box 513, NL-5600 MB Eindhoven http://www.win.tue.nl/~wstomv/ | The Netherlands _______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/mailman/listinfo/fpc-pascal