At 13:44 17-4-2006, you wrote:
> >I don't understand the way FPC stores debug information: line info etc. It
> >seems useful to not lose this information or at least know, that it was
> >overwritten.
> >I got some run time errors with no line info (when compiled with -gcl
> >option), all of them should be "unreproducible", because all of them
> >appeared in not so small projects. If they could be caused by overwritten
> >memory, it would be useful to know about it.
> Debug information is never loaded into memory it is only available on the disk.
> Peter

It's dubious.

{$R+}
var a,b:integer;
begin
move(a,b,2000);
a:=32000;
b:=32000;
a:=a*b;
end.

I use win32.
This program (16 bit integer) produces very different results with different values of third parameter of move(a,b,*). System crash (OS exception arises), "normal" work (no exception, no messages), and run time errors 201 or 216 with line info (line 7 or 4) (this is the supposed behavior).

Looking at asm source I see, that data segment contains very very much...

This is some theoritical example. Real programs should avoid globals as much as possible. They are also not good for threading.

Also in the debugger with some hardware watchpoints in the datasegment you find the culprit very quickly.


Peter

_______________________________________________
fpc-devel maillist  -  fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to