[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