[M3devel] more crashers

Jay K jay.krell at cornell.edu
Sun Aug 16 22:32:31 CEST 2009


m3browser:
 
It is specific to my config file m3-sys/cminstall/src/config-no-install/cm3.cfg that reachs back into the source tree. It won't happen with what most people do. I have to do that M3Predefines or such work so that all the uses of m3quake besides cm3 are much more like cm3.
 
 
visobliq:
  not the same thing
  Does not occur on Linux/x86 or Linux/sparc.
  They do print
Syntax error just before: -helvetica-bold-\*R-\*240-\*\") (LabelFo ...
  ill-formed character escape sequence
Error detected (file file generated by Visual Obliq) (line 18, char 10)
VideoVBT.Start Jv ServerFailure:errno=0

but then gui comes up.
I'll have to finish my Solaris reinstall and get dbx.
 
 
 - Jay


----------------------------------------
> From: jay.krell at cornell.edu
> To: hosking at cs.purdue.edu
> Date: Sun, 16 Aug 2009 20:22:49 +0000
> CC: m3devel at elegosoft.com
> Subject: Re: [M3devel] more crashers
>
>
> sorry, this is simple.
>
> derived_dirs := IntList.List1 (ID.Add (MxConfig.Get("BUILD_DIR")));
>
>
> - Jay
>
>
>
> ----------------------------------------
>> From: jay.krell at cornell.edu
>> To: hosking at cs.purdue.edu
>> Date: Sun, 16 Aug 2009 19:52:03 +0000
>> CC: m3devel at elegosoft.com
>> Subject: Re: [M3devel] more crashers
>>
>>
>> Here is the relevant code in m3browser ID.m3:
>>
>>
>> C:\dev2\cm3.2\m3-tools\m3markup\src\ID.m3(38): empty_id := Add ("");
>>
>> empty_id := Add ("");
>>
>> (*-------------------------------------------------------------- exported ---*)
>> PROCEDURE Add (x: TEXT): T =
>> VAR
>> t: T;
>> a: REF ARRAY OF CHAR;
>> l: INTEGER;
>> BEGIN
>> l := Text.Length(x);
>> ...
>> END Add;
>>
>>
>> The empty string constant ends up as null.
>>
>> .stabn 68,0,38,.LM115-.LFBB10
>> .LM115:
>> movl L_1 at GOT(%ebx), %eax
>> leal 24(%eax), %eax
>> movl %eax, (%esp)
>> call ID__Add at PLT
>> movl %eax, -8(%ebp)
>> movl -8(%ebp), %ecx
>> movl MM_ID at GOT(%ebx), %edx
>> movl 248(%edx), %eax
>> andl $0, %eax
>> orl %ecx, %eax
>> movl %eax, 248(%edx)
>> .L136:
>> movl MM_ID at GOT(%ebx), %eax
>> .LBE16:
>> addl $52, %esp
>> popl %ebx
>> popl %ebp
>> ret
>>
>> L_1:
>> 0 .long RTHooks__TextLitInfo
>> 4 .long RTHooks__TextLitGetChar
>> 8 .long RTHooks__TextLitGetWideChar
>> 12 .long RTHooks__TextLitGetChars
>> 16 .long RTHooks__TextLitGetWideChars
>> 20 .long 2
>> 24 .long L_1
>> .long 0
>> .zero 4
>> .ascii "ID_M3"
>> .zero 1
>> .ascii "ExpandHashTable"
>> .zero 1
>> .ascii "ExpandIDs"
>> .zero 1
>> .ascii "ExpandChars"
>> .zero 1
>> .ascii "Compare"
>> .zero 1
>>
>> If I change "" to "foo", I get:
>>
>> L_1:
>> 0 .long RTHooks__TextLitInfo
>> 4 .long RTHooks__TextLitGetChar
>> 8 .long RTHooks__TextLitGetWideChar
>> 12 .long RTHooks__TextLitGetChars
>> 16 .long RTHooks__TextLitGetWideChars
>> 20 .long 2
>> 24 .long L_1
>> .long 3
>> .ascii "foo"
>> .zero 1
>> .ascii "ID_M3"
>>
>> and it still crashes.
>>
>>
>> It seems to hit ID__Add twice when only once would be expected.
>>
>>
>> - Jay
>>
>>
>> ----------------------------------------
>>> From: jay.krell at cornell.edu
>>> To: hosking at cs.purdue.edu
>>> Date: Sun, 16 Aug 2009 19:33:34 +0000
>>> CC: m3devel at elegosoft.com
>>> Subject: Re: [M3devel] more crashers
>>>
>>>
>>> Could be. I've also seen it on PPC_DARWIN a while ago. I only recall seeing it on sparc and ppc.
>>> It doesn't always occur.
>>>
>>>
>>> Here is the m3browser crash on a system that can be debugged.
>>> See why I want the full paths in the debug info?
>>>
>>>
>>> C:\Users\jay\Desktop>\cygwin\bin\ssh xobsd.
>>> $ cd /cm3
>>> $ cd bin
>>> $ export DISPLAY=192.168.1.120:0.0
>>> $ gdb ./m3browser
>>> GNU gdb 6.3
>>> This GDB was configured as "i386-unknown-openbsd4.5"...
>>> (gdb) r
>>> Starting program: /home/jay/cm3/bin/m3browser
>>> Program received signal SIGSEGV, Segmentation fault.
>>> [Switching to process 31063, thread 0x7eafe800]
>>> 0x01592fd4 in Text__Length (M3_Bd56fi_t=0x0) at ../src/text/Text.m3:16
>>> 16 t.get_info (i);
>>> (gdb) bt
>>> #0 0x01592fd4 in Text__Length (M3_Bd56fi_t=0x0) at ../src/text/Text.m3:16
>>> #1 0x09fd9464 in ID__Add (M3_Bd56fi_x=0x0) at ../src/ID.m3:48
>>> #2 0x1c01e644 in Main_M3 (M3_AcxOUs_mode=1) at ../src/Main.m3:37
>>> #3 0x0156f1bc in RTLinker__RunMainBody (M3_DjPxE3_m=0x3c003ec0)
>>> at ../src/runtime/common/RTLinker.m3:399
>>> #4 0x0156e576 in RTLinker__AddUnitI (M3_DjPxE3_m=0x3c003ec0)
>>> at ../src/runtime/common/RTLinker.m3:113
>>> #5 0x0156e604 in RTLinker__AddUnit (M3_DjPxE5_b=0x1c01e54d)
>>> at ../src/runtime/common/RTLinker.m3:122
>>> #6 0x1c004676 in main (argc=1, argv=0xcfbf6a3c, envp=0xcfbf6a44)
>>> at _m3main.mc:4
>>>
>>>
>>> - Jay
>>>
>>>
>>> ________________________________
>>>> From: hosking at cs.purdue.edu
>>>> To: jay.krell at cornell.edu
>>>> Date: Sun, 16 Aug 2009 15:26:49 -0400
>>>> CC: m3devel at elegosoft.com
>>>> Subject: Re: [M3devel] more crashers
>>>>
>>>> Could this be endianness-related?
>>>>
>>>> On 16 Aug 2009, at 15:21, Jay K wrote:
>>>>
>>>>
>>>> I see the assertion failure on PPC_LINUX too.
>>>> I tried VAR defaultStackSize := 1024 * 1024; (not sure why there was any suspicion of stack size).
>>>>
>>>>
>>>> Debugging doesn't work PPC_LINUX.
>>>>
>>>>
>>>> jay at plin:/cm3/bin$ gdb ./cm3
>>>> GNU gdb 6.8-debian
>>>> Copyright (C) 2008 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "powerpc-linux-gnu"...
>>>> break ma(gdb) break main
>>>> Breakpoint 1 at 0x86fc4: file _m3main.mc, line 2.
>>>> (gdb) r
>>>> Starting program: /home/jay/cm3/bin/cm3
>>>> Warning:
>>>> Cannot insert breakpoint 1.
>>>> Error accessing memory address 0x86fc4: Input/output error.
>>>>
>>>>
>>>> No problem with C:
>>>>
>>>>
>>>> jay at plin:/cm3/bin$ echo "main(){}"> 1.c
>>>> jay at plin:/cm3/bin$ gcc -g 1.c
>>>> jay at plin:/cm3/bin$ gdb ./a.out
>>>> GNU gdb 6.8-debian
>>>> Copyright (C) 2008 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "powerpc-linux-gnu"...
>>>> (gdb) break main
>>>> Breakpoint 1 at 0x10000448: file 1.c, line 1.
>>>> (gdb) r
>>>> Starting program: /home/jay/cm3/bin/a.out
>>>> Breakpoint 1, main () at 1.c:1
>>>> 1 main(){}
>>>> (gdb)
>>>>
>>>>
>>>> jay at plin:/cm3/bin$ gcc -gstabs+ 1.c
>>>> jay at plin:/cm3/bin$ gdb ./a.out
>>>> GNU gdb 6.8-debian
>>>> Copyright (C) 2008 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "powerpc-linux-gnu"...
>>>> (gdb) break main
>>>> Breakpoint 1 at 0x10000448: file 1.c, line 1.
>>>> (gdb) r
>>>> Starting program: /home/jay/cm3/bin/a.out
>>>> Breakpoint 1, main () at 1.c:1
>>>> 1 main(){}
>>>>
>>>>
>>>> jay at plin:/cm3/bin$ gcc -gstabs 1.c
>>>> jay at plin:/cm3/bin$ gdb ./a.out
>>>> GNU gdb 6.8-debian
>>>> Copyright (C) 2008 Free Software Foundation, Inc.
>>>> License GPLv3+: GNU GPL version 3 or later
>>>> This is free software: you are free to change and redistribute it.
>>>> There is NO WARRANTY, to the extent permitted by law. Type "show copying"
>>>> and "show warranty" for details.
>>>> This GDB was configured as "powerpc-linux-gnu"...
>>>> (gdb) break main
>>>> Breakpoint 1 at 0x10000448: file 1.c, line 1.
>>>> (gdb) r
>>>> Starting program: /home/jay/cm3/bin/a.out
>>>> Breakpoint 1, main () at 1.c:1
>>>> 1 main(){}
>>>> (gdb)
>>>>
>>>>
>>>> - Jay
>>>>
>>>>
>>>> ----------------------------------------
>>>> From: jay.krell at cornell.edu
>>>> To: m3devel at elegosoft.com
>>>> Subject: more crashers
>>>> Date: Sun, 16 Aug 2009 10:06:15 +0000
>>>>
>>>>
>>>> This is head on SOLgnu:
>>>> I'll try another and debug and see if fix is easy.
>>>>
>>>> -bash-3.00$ ./m3browser
>>>>
>>>> ***
>>>> *** runtime error:
>>>> *** Segmentation violation - possible attempt to dereference NIL
>>>> *** pc = 0xfe484f04 = String16_M3 + 0xe0 in ../src/text/String16.m3
>>>> ***
>>>>
>>>> -bash-3.00$ ./visobliq
>>>> Internal Obliq interpreter installed...
>>>> Establishing 'templates'
>>>> (Created frame 'templates')
>>>> let
>>>> Templates =
>>>> {boolean=> ... ,
>>>> browser=> ... ,
>>>> button=> ... ,
>>>> choice=> ... ,
>>>> filebrowser=> ... ,
>>>> form=> ... ,
>>>> frame=> ... ,
>>>> hscroll=> ... ,
>>>> menu=> ... ,
>>>> numeric=> ... ,
>>>> text=> ... ,
>>>> textedit=> ... ,
>>>> typein=> ... ,
>>>> video=> ... ,
>>>> vscroll=> ... }
>>>> Establishing 'vowidgets'
>>>> (Created frame 'vowidgets')
>>>> ok
>>>> Establishing 'vocheckpt'
>>>> (Created frame 'vocheckpt')
>>>> ok
>>>> Establishing 'volib'
>>>> (Created frame 'volib')
>>>> Segmentation Fault (core dumped)
>>>> -bash-3.00$
>>>>
>>>>


More information about the M3devel mailing list