bugGNUstep - Bugs: bug #25243, Art backend Seg Faults

Group
 
 

bug #25243: Art backend Seg Faults

Submitter:  Stef <stefanbidi>
Submitted:  Sun 04 Jan 2009 03:07:41 AM UTC
   
 
Category:  Backend Severity:  3 - Normal
Item Group:  Bug Status:  Fixed
Privacy:  Public Assigned to:  FredKiefer
Open/Closed:  Closed
* Mandatory Fields

Add a New Comment Rich Markup
   

Jump to the original submission

Sun 28 Mar 2010 02:26:40 PM UTC, comment #14: 

Seems to be working now.  This can be closed.

Stef <stefanbidi>
Group Member
Sat 27 Mar 2010 10:44:59 PM UTC, comment #13: 

is this still actual with the core version going to be released soon?
Maybe you should update your art version?

I tried to reproduce the bug on a plain linux, x86 system with libart 2.3.20 and all applications work well, including GOrm.

I'm using libffi on this machine, but have ffcall on others.

Riccardo Mottola <rmottola>
Group Member
Sun 01 Feb 2009 02:23:45 AM UTC, comment #12: 

OK, I did that, here are the results... when it crashes I seg faults I get the following:

(gdb) p face
$1 = (FT_Face) 0x8b525150

The result of "b ftfont.m:144" is attached.  Let me know if that's what you were looking for.  It only stopped once at which point I got the value of "*pface".

(file #17368)

Stef <stefanbidi>
Group Member
Sat 31 Jan 2009 10:01:31 PM UTC, comment #11: 

Now getting the backtrace is the hard bit and you managed that already :-)

To get gdb to print out the value of a locally visible variable you just type "p" and the name of that variable. In your case

p face

If you want to print the value of an object (which face isn't) you use "po".

Debugging the function is only slightly harder. First you need to get gdb to stop in that function. For this you use "b" to define a break point. I suggest using

b ftfont.m:144

This gets gdb to stop on an interesting line in that function. Next you use "p" to print out everything interesting and get gdb going again with "c". It will come back to that function multiple times and the last time is the most interesting one.

to get the value of face printed out here you will need to use

p *pface

Thank you for your effort.

Fred Kiefer <FredKiefer>
Group Member
Sat 31 Jan 2009 08:54:26 PM UTC, comment #10: 

Well, the only thing I can think of that is relevant about the machine is that it's a Compaq CQ50 laptop with nVidia card + proprietary nvidia driver (can't think of the version, if you think it's important, I'll check the version and see what happens if I upgrade/downgrade the driver).

Art has worked in the past on this same machine, but it was Slackware 12.1, so there might be somehthing there as well.

As for the debuging, you're going to have to help me out here.  How do I make gdb print out the value of face (have to say, I don't even know what that is)?  Also, how do I debug that function?

If you haven't noticed, all I really know how to do in gdb is get a backtrace.

Stef <stefanbidi>
Group Member
Sat 31 Jan 2009 07:57:52 PM UTC, comment #9: 

The new back trace is about the same as the old one, but this
time the frames on the stack aren't corrupted.

I really don't understand what is going on. Just a few lines before this segmentation fault we are testing the value of face and at least it isn't 0. But what other value could it be? Could you please have gdb print out that value?

And what is different on your machine? On most others art is working perfectly. Could you please try to debug the function ft_get_face() and see if something goes wrong there?

Fred Kiefer <FredKiefer>
Group Member
Sat 31 Jan 2009 01:43:32 AM UTC, comment #8: 

Oops!  Didn't realize there was more... I should have probably put it in a file and just attached it here.

#9  0xb794b5fb in +[NSObject new] (self=0xb7ed7360, _cmd=0x810c480)
    at NSObject.m:1306
#10 0x0804f4e8 in -[GWorkspace createMenu] (self=0x8295138, _cmd=0x810c4b8)
    at GWorkspace.m:149
#11 0x08050d1f in -[GWorkspace applicationWillFinishLaunching:] (
    self=0x8295138, _cmd=0xb7e8c268, aNotification=0x8363e78)
    at GWorkspace.m:328
#12 0xb793d79e in -[NSNotificationCenter _postAndRelease:] (self=0x81dfae0,
    _cmd=0xb7b4abf8, notification=0x8363e78) at NSNotificationCenter.m:1111
#13 0xb793e0e2 in -[NSNotificationCenter postNotificationName:object:userInfo:]
    (self=0x81dfae0, _cmd=0xb7b4ac00, name=0xb7f333a0, object=0x829cec8,
    info=0x0) at NSNotificationCenter.m:1170
#14 0xb793df95 in -[NSNotificationCenter postNotificationName:object:] (
    self=0x81dfae0, _cmd=0xb7e8bd20, name=0xb7f333a0, object=0x829cec8)
    at NSNotificationCenter.m:1150
#15 0xb7c4df07 in -[NSApplication finishLaunching] (self=0x829cec8,
    _cmd=0xb7e8be90) at NSApplication.m:969
#16 0xb7c4fbd3 in -[NSApplication run] (self=0x829cec8, _cmd=0x8106d50)
    at NSApplication.m:1399
#17 0x0804d4be in main () at main.m:37

Stef <stefanbidi>
Group Member
Sat 31 Jan 2009 01:39:52 AM UTC, comment #7: 

OK, here's the backtrace... it's different than the others, this is with today's SVN.

(gdb) r
Starting program: /usr/GNUstep/System/Applications/GWorkspace.app/GWorkspace
[Thread debugging using libthread_db enabled]
[New Thread 0xb700c6d0 (LWP 8635)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb700c6d0 (LWP 8635)]
0xb6f2a460 in -[FTFontInfo initWithFontName:matrix:screenFont:] (
    self=0x83699f8, _cmd=0xb7f3d388, name=0xb6f5d33c, fmatrix=0xbfc456b4,
    p_screenFont=0 '\000') at ftfont.m:297
297         for (i = 0; i < face->num_charmaps; i++)
(gdb) bt
#0  0xb6f2a460 in -[FTFontInfo initWithFontName:matrix:screenFont:] (
    self=0x83699f8, _cmd=0xb7f3d388, name=0xb6f5d33c, fmatrix=0xbfc456b4,
    p_screenFont=0 '\000') at ftfont.m:297
#1  0xb7e1514f in +[GSFontInfo fontInfoForFontName:matrix:screenFont:] (
    self=0xb7f3d1a0, _cmd=0xb7ebd6d8, nfontName=0xb6f5d33c,
    fmatrix=0xbfc456b4, screenFont=0 '\000') at GSFontInfo.m:140
#2  0xb7cd3b6b in -[NSFont initWithName:matrix:fix:screenFont:role:] (
    self=0x83699b0, _cmd=0xb7ebd6b0, name=0xb6f5d33c, fontMatrix=0xbfc456b4,
    explicitlySet=0 '\000', screen=0 '\000', aRole=12) at NSFont.m:802
#3  0xb7cd3868 in +[NSFont _fontWithName:size:role:] (self=0xb7ebd400,
    _cmd=0xb7ebd600, aFontName=0xb6f5d33c, fontSize=12, aRole=12)
    at NSFont.m:737
#4  0xb7cd29b6 in getNSFont (fontSize=12, role=6) at NSFont.m:360
#5  0xb7cd33aa in +[NSFont menuFontOfSize:] (self=0xb7ebd400, _cmd=0xb7eda048,
    fontSize=0) at NSFont.m:589
#6  0xb7d1ab5f in -[NSMenuView initWithFrame:] (self=0x83689b0,
    _cmd=0xb7ed77b0, aFrame=
        {origin = {x = 0, y = 0}, size = {width = 0, height = 0}})
    at NSMenuView.m:162
#7  0xb7d150a6 in -[NSMenu initWithTitle:] (self=0x8365550, _cmd=0xb7ed7770,
    aTitle=0x822f758) at NSMenu.m:547
#8  0xb7d14bf3 in -[NSMenu init] (self=0x8365550, _cmd=0xb7b4f4c8)
    at NSMenu.m:493

Stef <stefanbidi>
Group Member
Mon 19 Jan 2009 12:29:57 AM UTC, comment #6: 

Could you please add the back trace for the new segmentation fault as well? It might just be the same as before, but how should I know...

Fred Kiefer <FredKiefer>
Group Member
Sat 17 Jan 2009 05:33:17 PM UTC, comment #5: 

Yes, it did!  I just redirected the output of stderr, not stdout, to the file.

As for only using Helvetica it's only because there really aren't any available nfonts other than it and the stuff in the backbone CVS repo (at least that I know of).

Stef <stefanbidi>
Group Member
Sat 17 Jan 2009 02:55:42 PM UTC, comment #4: 

Looks like you only have the default font for the art backend installed (Helvetica). Perhaps we should advertise better that there are additional fonts available as a separate package.

Did you again get a segmentation fault?

Fred Kiefer <FredKiefer>
Group Member
Fri 16 Jan 2009 01:05:00 AM UTC, comment #3: 

There you go!

(file #17270)

Stef <stefanbidi>
Group Member
Sun 04 Jan 2009 07:50:03 PM UTC, comment #2: 

Looks liek this bug is rather similar to #25064. And for that bug I already failed to find out what is causing it :-(

This time I will do better and I have already added some more debugging code to the SVN repository. Could you please update GNUstep back to SVN and runn Gorm again with the parameter "--GNU-Debug=ftfont"? Please rpost the result to this bug report and maybe I will be able to figure out what is causing the problem this time.

Fred Kiefer <FredKiefer>
Group Member
Sun 04 Jan 2009 03:24:05 AM UTC, comment #1: 

Forgot to mention before that the cairo backend works just fine.  No issues!

Stef <stefanbidi>
Group Member
Sun 04 Jan 2009 03:07:41 AM UTC, original submission:  

Title says it all... this is the backtrace on Slackware 12.2:

bash-3.1$ openapp --debug Gorm            
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
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 "i486-slackware-linux"...
(gdb) r
Starting program: /usr/local/lib/GNUstep/Applications/Gorm.app/Gorm
[Thread debugging using libthread_db enabled]
[New Thread 0xb6f2c6d0 (LWP 17890)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0xb6f2c6d0 (LWP 17890)]
0xb6e49763 in -[FTFontInfo initWithFontName:matrix:screenFont:] (
    self=0x82ed288, _cmd=0xb7e708a8, name=0xb6e7c320, fmatrix=0xbfdc81a4,
    p_screenFont=0 '\000') at ftfont.m:281
281         for (i = 0; i < face->num_charmaps; i++)
(gdb) bt
#0  0xb6e49763 in -[FTFontInfo initWithFontName:matrix:screenFont:] (
    self=0x82ed288, _cmd=0xb7e708a8, name=0xb6e7c320, fmatrix=0xbfdc81a4,
    p_screenFont=0 '\000') at ftfont.m:281
#1  0xb7d4609f in ?? () from /usr/lib/libgnustep-gui.so.0.16
#2  0x082ed288 in ?? ()
#3  0xb7e708a8 in ?? () from /usr/lib/libgnustep-gui.so.0.16
#4  0xb6e7c320 in _OBJC_INSTANCE_72 ()
   from /usr/lib/GNUstep/Bundles/libgnustep-back-016.bundle/./libgnustep-back-016
#5  0xbfdc81a4 in ?? ()
#6  0x00000000 in ?? ()

Stef <stefanbidi>
Group Member

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #17368:  Art_SegFault.txt added by stefanbidi (949B - text/plain)
file #17270:  output.txt added by stefanbidi (4KiB - text/plain)

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by rmottola (Posted a comment)
  • -email is unavailable- added by FredKiefer (Posted a comment)
  • -email is unavailable- added by stefanbidi (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 7 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2010-03-28 FredKiefer Item GroupNone Bug
        StatusNone Fixed
        Open/ClosedOpen Closed
    2009-02-01 stefanbidi Attached File- Added Art_SegFault.txt, #17368
    2009-01-16 stefanbidi Attached File- Added output.txt, #17270
    2009-01-04 FredKiefer Assigned toNone FredKiefer
    2009-01-04 stefanbidi PrivacyNone Public

    Back to the top

    Powered by Savane 3.13-caa5.
    Corresponding source code