[fpc-pascal] Internal error 200312122

Peter Vreman peter at freepascal.org
Sun Feb 5 20:56:37 CET 2006

> Martin Schreiber schreef:
>> On Sunday 05 February 2006 17.11, Koenraad Lelong wrote:
>>>Just tried it, doesn't work :-(. Compiling with ppc386 for i386-linux
>>>works fine, compiling with ppcrossarm for arm-linux gives the error.
>>>Could this be a processor specific error ?
>> compiler/cgobj.pas:548:
>>     function
>> tcg.getintregister(list:Taasmoutput;size:Tcgsize):Tregister;
>>       begin
>>         if not assigned(rg[R_INTREGISTER]) then
>>           internalerror(200312122);
>>         result:=rg[R_INTREGISTER].getregister(list,cgsize2subreg(size));
>>       end;
>> Martin
> OK, now I know that I can search for such an error. I assumed they were
> put together in the source (somestring1+somestring2...).
> I'm going to look at that (although with little hope, I'm not into
> compilers ;-)).

Internalerror numbers are just unique numbers be using <date><seqnr>. They
don't have any meaning.

Quick intro for debugging this.
- Build compiler with debug info: 'make cycle OPT=-gl'
- Compile source with this new compiler in gdb:
   - gdb --args <newcompiler> <args>
   - (gdb) br INTERNALERROR
   - (gdb) dir <pathtocompilersource>
   - (gdb) r
   - Hit breakpoint
   - (gdb) bt
   - The backtrace will give you more info. Use 'fr <framenr>' to jump to
a function in the callstack so you can watch the code and variables.

More information about the fpc-pascal mailing list