[fpc-pascal] Stack trace different for Windows and Linux
Terry Mead
tlm at weighbatch.com
Mon Jan 23 10:17:10 CET 2017
Gentlemen,
I'm a new poster to the mail list. I have a problem logging call stack
trace info following an exception.
The following simple program generates a divide by zero error.
PROGRAM Test;
VAR i, j, k : Integer;
PROCEDURE test1;
BEGIN
i := i - 1;
k := j DIV i;
END; {test}
PROCEDURE test2;
BEGIN
test1;
END; {taskProc}
BEGIN
i := 1; j := 1;
test2;
END.
When compiled and run under Windows it generates the stack trace:
Runtime error 200 at $00401404
$00401404 TEST1, line 6 of test.pas
$00401428 TEST2, line 11 of test.pas
$00401451 main, line 16 of test.pas
$004077D1
Which is what you would expect. When compiled and run on an ARM
processor under Linux (Debian Jessie) it generates the stack trace:
Runtime error 200 at $000101AC
$000101AC TEST2, line 11 of test.pas
$000101E0 main, line 16 of test.pas
$00010118
Ie. it does not contain the reference to the actual line which caused
the problem. The first entry is to the return address of the faulting
procedure.
The same compile options are used for both and include the -gl option.
FPC version is 2.6.4.
Anyone have any idea why this happens or more usefully how the Linux
result can be fixed ?
Thanks,
Terry
---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freepascal.org/pipermail/fpc-pascal/attachments/20170123/211cb65a/attachment.html>
More information about the fpc-pascal
mailing list