[lazarus] Trace routines using Assert doesn't work

Peter Vreman pfvreman at wins.uva.nl
Tue Jul 27 11:16:46 EDT 1999


At 14:51 27-7-99 , you wrote:
>Peter Vreman wrote:
> >
> > >What could be preventing me from adding any writeln code to the
> > >handler?
> > >
> > >Any clues compiler guys??
> > No, because i don't have code which shows the bugs.
>
>I didn't send you any code because the simple code version I created
>works fine. It is only in the lcl code that it blows out. I was hoping
>that maybe I was doing something stupid and you would be able to say,
>"well you did do such and such didn't you". However, with further
>testing it seems to be more involved then that. The exceptions isn't
>coming from the Assert routines at all. The exception is coming from the
>very next method call after the Assert line in my code. It happens to be
>
>    inherited Create(Owner);
>
>So the code looks like this
>
>begin
>    Assert(False, 'Trace:the message');
>
>    inherited Create(Owner);
>
>    Assert(False, 'Trace:next trace message');
>.
>.
>.
>.
>end;
>
>If I put a try..except around this it fails but ONLY if Assertions are
>turned on. I'll work on checking exactly what exception is being thrown
>and try to track down who is throwing it.
>
>The weird thing is that if I put a writeln between the Assert and the
>inherited line like this
>
>    Assert(False, 'Trace:the message');
>
>writeln('back from Assert');
>
>    inherited Create(Owner);
>
>Then the code DOESN'T throw an exception in the inherited call. But it
>will throw and exception on the line following the NEXT Assert line.
>
>I hate it when writeln's fix bugs.   :-\
Then it's in 90% of the cases a bug with the stack.








More information about the Lazarus mailing list