Robert AH Prins
2012-01-09 15:50:53 UTC
Although I'm quite happy using Virtual Pascal, I've decided to give FPC
(on W32) another try and, again, I'm not a very happy bunny.
I've got a program that compiles and runs cleanly in VP, yet it fails
miserably in VP, and the unpleasant thing is that running it in the IDE
gives me a
"Run Time Error 4297603" with an
"Error address $00000000"
on a "reset(liftin)" statement.
Running the program, which compiles with just two warnings about
uninitialized variables, from the command-line, will not show up this
error, but it now abends with a 216 in the next routine,
_hash_tr:= maxint;
list_ptr:= list_top;
repeat
if list_ptr^.cday[3] = '#' then <--- 216
_hash_tr:= pred(list_ptr^.tr);
list_ptr:= list_ptr^.list_nxt;
until (_hash_tr <> maxint) or
(list_ptr = nil);
which would indicate that the list that is supposed to be build in the
earlier routine that reads the file is not built, but given that I
cannot even get to this step in the IDE, that's pretty hard to confirm,
although pretty obvious.
Any hints as how to proceed?
Robert
PS: The code generated for some (if not most) routines is just as
horribly bad as the code generated by BP and VP - don't take this too
personally, IBM's commercial PL/I compiler for Windows generates code
that's just as horrible, if not even worse (and this despite the fact
that an IBM'er told me two years ago that IBM was well ahead of the FOSS
pack when it came to compiler optimizations...)
PS2: The VP executable, with full debugging info comes to 110K, the FPC
version is a few bits more bloated at 299K...
(on W32) another try and, again, I'm not a very happy bunny.
I've got a program that compiles and runs cleanly in VP, yet it fails
miserably in VP, and the unpleasant thing is that running it in the IDE
gives me a
"Run Time Error 4297603" with an
"Error address $00000000"
on a "reset(liftin)" statement.
Running the program, which compiles with just two warnings about
uninitialized variables, from the command-line, will not show up this
error, but it now abends with a 216 in the next routine,
_hash_tr:= maxint;
list_ptr:= list_top;
repeat
if list_ptr^.cday[3] = '#' then <--- 216
_hash_tr:= pred(list_ptr^.tr);
list_ptr:= list_ptr^.list_nxt;
until (_hash_tr <> maxint) or
(list_ptr = nil);
which would indicate that the list that is supposed to be build in the
earlier routine that reads the file is not built, but given that I
cannot even get to this step in the IDE, that's pretty hard to confirm,
although pretty obvious.
Any hints as how to proceed?
Robert
PS: The code generated for some (if not most) routines is just as
horribly bad as the code generated by BP and VP - don't take this too
personally, IBM's commercial PL/I compiler for Windows generates code
that's just as horrible, if not even worse (and this despite the fact
that an IBM'er told me two years ago that IBM was well ahead of the FOSS
pack when it came to compiler optimizations...)
PS2: The VP executable, with full debugging info comes to 110K, the FPC
version is a few bits more bloated at 299K...
--
Robert AH Prins
robert(a)prino(d)org
Robert AH Prins
robert(a)prino(d)org