Hi,

ProjectCenter crashed on me today with Program terminated with signal 11, Segmentation fault.


I opened the core file and seet his trace:

#0  codeType (ch=0x11491e685000) at PCParser.m:103
103       if ( ((*ch > 0x40) && (*ch < 0x5B)) ||

a stacktrace:

(gdb) bt
#0  codeType (ch=0x11491e685000) at PCParser.m:103
#1 0x000011491839521d in -[PCParser parse] (self=0x114886e4a490, _cmd=Unhandled dwarf expression opcode 0xf3
)
    at PCParser.m:219
#2 0x0000114918394da0 in -[PCParser classNames] (self=0x114886e4a490, _cmd=Unhandled dwarf expression opcode 0xf3
)
    at PCParser.m:81
#3  0x00001148827e9ce6 in -[PCEditor browserItemsForItem:] (
    self=0x1148832aee10, _cmd=Unhandled dwarf expression opcode 0xf3
) at PCEditor.m:556
#4 0x0000114831eb3f1d in -[PCProjectBrowser(ProjectBrowserDelegate) browser:createRowsForColumn:inMatrix:] (self=0x11482c42e450, _cmd=Unhandled dwarf expression opcode 0xf3
)
    at PCProjectBrowser.m:544
#5  0x000011487858ff93 in -[NSBrowser(Private) _performLoadOfColumn:] (
    self=0x11488d037c10, _cmd=Unhandled dwarf expression opcode 0xf3
) at NSBrowser.m:3339
#6 0x000011487858d0e1 in -[NSBrowser addColumn] (self=0x11488d037c10, _cmd=Unhandled dwarf expression opcode 0xf3
)
    at NSBrowser.m:954

I ask myself, how can it crash in this place? The unichar is valid and there, I can print it out:

(gdb) p ch
$1 = (unichar *) 0x11491e685000
Current language:  auto; currently

How can it crash inside the function?

could it be that at at line 219

codeType(_uchar+_length)

points to out of bound? but that I can still access then _uchar? I wonder if it should be _length-1 ... I remember that code was needed for some special cases but I don't remember which ones. I suppose for file without newline.

if I make it _length-1 it doesn't crash, but I'd like a confirm that it makes sense.

Riccardo

_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to