[fpc-devel] crash with -gt -O2 in trunk

Jonas Maebe jonas.maebe at elis.ugent.be
Sat Jun 5 20:57:14 CEST 2010


On 05 Jun 2010, at 20:25, Martin wrote:

> Ok, I caught it in the debugger:
> Only problem is I don't know how reliable the values are, since -O2 isn't debugger friendly
> 
> 
> #0 fpc_reraise at ..\inc\except.inc:305
> #1 ?? at :0
> #2 READPROPVALUE(0xd529588, 0x0, 0x0) at ..\objpas\classes\reader.inc:1379
>     procedure TReader.ReadPropValue(Instance: TPersistent; PropInfo: Pointer);
>  The location of the crash is shown as inside the "end;" of the procedure => but that may be the debugger not coping with the optimization level
> 
>  Interstingly, at the time of crash, if looking at the stackframe, the debugger believes that the variable "Instance" is nil; now that would aco8unt for a crash.
>  The variable is not modified by the procedure (not as far as I can see)
>  See comment below: it would appear it was none nil to start with. If it is indeed nil at the time of the crash => then where was it set to nil?
> 
>  Same for PropInfo

The values of variables shown in the debugger cannot be relied upon when using -O2.

> If someone can point out any revision in fpc trunk that had significant changes to -O2 or -gt => I can test them.

One thing that was added is the node level CSE optimiser. You can disable it with the -Oonocse command line option (put it in the command line after -O2). There are no changes to -gt that I remember.


Jonas


More information about the fpc-devel mailing list