[M3devel] crashes everywhere (only m3gdb remains unsolved)

Tony Hosking hosking at cs.purdue.edu
Wed Aug 22 17:47:14 CEST 2007


On Aug 22, 2007, at 5:58 AM, Dragiša Durić wrote:

> Another program, similar code... bt before I do set lang (still no  
> idea
> why' problem there):
>
> #15 0x00d126f2 in _m3_fault (arg=Invalid C/C++ type code 39 in symbol
> table.
> ) from /usr/local/cm3/pkg/m3core/LINUXLIBC6/libm3core.so.5
> #16 0x00d0ef32 in CheckStoreTraced (ref=Invalid C/C++ type code 41 in
> symbol table.
> ) at RTCollector.m3:2316
> #17 0x0016bb96 in CreateFont (d=Invalid C/C++ type code 26 in symbol
> table.
> ) at Panda.m3:353
>
> Line 353 is:
>
>     AddDictItem(d, fo.obj, panda.TextValue, "Type", "Font");
>     AddDictItem(d, fo.obj, panda.TextValue, "Subtype", "TrueType");
>     fontident := "F" & Fmt.Pad(Fmt.Int(d.pdf.nextFontNumber), 8, '0');
>> INC(d.pdf.nextFontNumber);
>     (* AddDictItem(d, fo.obj, panda.TextValue, "Name", fontident);
>     *)
>     AddDictItem(d, fo.obj, panda.TextValue, "BaseFont", fo.f.name());
>
> d is traced, d.pdf is NOT, ie NOT really... a bug was, I've not  
> declared
> it "UNTRACED REF", and it is ref to C structure...

What is the type of d, d.pdf, and d.pdf.nextFontNumber?  Are you  
saying d.pdf is REF?  Yet you are storing an UNTRACED REF in it?  The  
garbage collector will definitely become confused in that situation.   
Try using gdb instead of m3gdb so I can see the value of the  
parameter 'ref' passed to CheckStoreTraced from CreateFont.

>
> I see these RTCollector bugs are happening from time to time, so I am
> posting this because I hope it can help other people identify it  
> before
> they hit list (as I did:).
>
> m3gdb nastyness remains...
>
> On Wed, 2007-08-22 at 11:44 +0200, Dragiša Durić wrote:
>> ***
>> *** runtime error:
>> ***    An array subscript was out of range.
>> ***    file "../src/runtime/common/RTCollector.m3", line 2316
>> ***
>>
>> m3gdb, on setting lang to Modula-3 (capital M) ant bt, gives this:
>>
>> (m3gdb) bt
>> #0  0x00d54402 in ?? ()
>> #1  0x430c7ba0 in raise () from /lib/libc.so.6
>> #2  0x430c94b1 in abort () from /lib/libc.so.6
>> #3  0x00eaf2ff in Crash () at RTOS.m3:20
>> #4  0x00ea1624 in Crash (msg=NIL) at RTProcess.m3:65
>> #5  0x00e9ed85 in EndError (crash=TRUE) at RTError.m3:115
>> #6  0x00e9ea3a in MsgS (file=16_00ed7368, line=2316,  
>> msgA=16_00ed8ee8,
>> msgB=16_00ed3530, msgC=16_00ed8ee8) at RTError.m3:40
>> #7  0x00e9f212 in Crash (a=
>> ../../gdb/gdb/m3-util.c:1057: internal-error: note_is_cm3: Assertion
>> `compiler_kind != ck_pm3' failed.
>> A problem internal to GDB has been detected,
>> further debugging may prove unreliable.
>>
>> I am using cvshead cm3, as of few days ago.
> -- 
> Dragiša Durić <dragisha at m3w.org>




More information about the M3devel mailing list