[Mono-bugs] [Bug 677260] New: SIGSEGV while running System.Drawing code

bugzilla_noreply at novell.com bugzilla_noreply at novell.com
Sun Mar 6 16:40:05 EST 2011


https://bugzilla.novell.com/show_bug.cgi?id=677260

https://bugzilla.novell.com/show_bug.cgi?id=677260#c0


           Summary: SIGSEGV while running System.Drawing code
    Classification: Mono
           Product: Mono: Class Libraries
           Version: 2.8.x
          Platform: Macintosh
               URL: http://www.ezblueprint.com
        OS/Version: Mac OS X 10.6
            Status: NEW
          Severity: Normal
          Priority: P5 - None
         Component: Sys.Drawing.
        AssignedTo: mono-bugs at lists.ximian.com
        ReportedBy: larsgjo at yahoo.com
         QAContact: mono-bugs at lists.ximian.com
          Found By: Community User
           Blocker: Yes


Created an attachment (id=417729)
 --> (http://bugzilla.novell.com/attachment.cgi?id=417729)
Our Drawing Application that calls GDI Plus and System.Drawing

Description of Problem:
Our application uses GDI+ to draw shapes on the screen.  This application uses
graphics path routines: CreatePath, DrawXXX, translate, etc.

When running System.Drawing code that uses GDI+ graphics path routines, there
are frequent SIGSEGV faults.  Most often, these faults occur when one of the
drawing routines are drawing off-of-screen coordinates (negative coordinates,
or beyond the display device).  

Steps to reproduce the problem:
0. Get onto a Mac computer with Mono 2.8 already installed.
1. Unzip the example program directory to a location on your computer.
2. CD into the directory that you have created.
3. type "mono clientmac.exe"
4. Wait for the program to load.
5. Click on the "help" menu.
6. Choose open example drawing.
7. Open the drawing "masterbedroom.bp"
8. Wait for the drawing to display.
9. Scroll the scrollbars back and forth, up and down (scrolling the drawing
into negative coordinates frequently).  


Actual Results:
1.  Eventually, the program will throw an exception (after about the 5th time
of scrolling the drawing off the screen).  
2.  The exception is: 

  =================================================================
Got a SIGSEGV while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries 
used by your application.
=================================================================

3. The most common stack traces are:
at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDeletePath (intptr)
<0x00003>
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipDeletePath (intptr)
<0x00003>
  at System.Drawing.Drawing2D.GraphicsPath.Dispose (bool) <0x0002c>
  at System.Drawing.Drawing2D.GraphicsPath.Finalize () <0x00013>
  at (wrapper runtime-invoke) object.runtime_invoke_virtual_void__this_


OR


  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipCreatePath
(System.Drawing.Drawing2D.FillMode,intptr&) <0x00003>
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdipCreatePath
(System.Drawing.Drawing2D.FillMode,intptr&) <0x00003>
  at System.Drawing.Drawing2D.GraphicsPath..ctor () <0x00032>
  at (wrapper remoting-invoke-with-check)
System.Drawing.Drawing2D.GraphicsPath..ctor () <0x0002b>
  at Fileparserusingobjects.af (Fileparserusingobjects/ShapeNode) <0x000fd>
  at Fileparserusingobjects.l (Fileparserusingobjects/ShapeNode) <0x0018a>


Expected Results:
The program should be able to render the drawing, with any transformation
applied to the graphics paths.  The program should not throw a SIGSEGV fault.


How often does this happen? 

Every time.  It is usually reproducible after scrolling the drawing back and
forth off the screen about 5 times.

Additional Information:

We do not have much Unix or Mac programming experience.

Feel free to to use our program to test the mono routines that implement the
graphics path apis found in GDI+.

We love the implementation of Mono that you have created.

-- 
Configure bugmail: https://bugzilla.novell.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the mono-bugs mailing list