[Mono-dev] TextBoxBase Out of Memory Problem
Charlie Poole
charlie at pooleconsulting.com
Sat Jan 20 00:56:36 EST 2007
Hi Sebastien,
This is on Windows using stock 1.2.2, so maybe it's fixed.
I'll try building from SVN and see what happens. Any reason
I can't just build MWF and drop the assembly into my stock
system?
Charlie
> -----Original Message-----
> From: Sebastien Pouliot [mailto:sebastien.pouliot at gmail.com]
> Sent: Friday, January 19, 2007 7:10 PM
> To: Charlie Poole
> Cc: 'mono-devel'
> Subject: Re: [Mono-dev] TextBoxBase Out of Memory Problem
>
> Hello Charlie,
>
> Are you using Mono from SVN ? (if so which revision ?) or
> stock 1.2.2 ?
>
> I believe I fixed today this problem (it affects only Win32).
> The DC was not released because the p/invoke signature missed
> a parameter.
>
> Sebastien
>
> On Fri, 2007-01-19 at 18:23 -0800, Charlie Poole wrote:
> > Hi All,
> >
> > While it's probably not a good idea to keep hitting a text box with
> > AppendText calls, that's what the NUnit Gui does at the moment,
> > resulting in the stack trace below.
> >
> > This is a bit hard to repro, since NUnit tries to handle
> the unhandled
> > exception, making matters even worse. I got it by running the NUnit
> > tests with labels turned on, so that each test caused at least one
> > write to the output tab. To get the stack trace, I modified
> NUnit to
> > not capture unhandled exceptions and ran it under mono with
> --debug.
> > If this is not already a known problem, I can try to create
> a simple test for it.
> >
> > Charlie
> >
> >
> > D:\Dev\NUnit\nunit-2.4\build\mono\1.0\debug>mono --debug nunit.exe
> >
> > Unhandled Exception: System.Reflection.TargetInvocationException:
> > Exception has been thrown by the target of an invocation. --->
> > System.Reflection.TargetInvocat
> > ionException: Exception has been thrown by the target of an
> > invocation. ---> Sys
> > tem.OutOfMemoryException: Out of memory.
> > at System.Drawing.GDIPlus.CheckStatus (Status status)
> [0x00078] in
> > C:\cygwin\t
> >
> mp\scratch\mono-1.2.2\mcs\class\System.Drawing\System.Drawing\
> gdipFunctions.
> > cs:1
> > 92
> > at System.Drawing.Graphics.FromHdc (IntPtr hdc) [0x00009] in
> > C:\cygwin\tmp\scr
> >
> atch\mono-1.2.2\mcs\class\System.Drawing\System.Drawing\Graphi
> cs.cs:1673
> > at System.Drawing.Font.ToLogFont (System.Object logFont)
> [0x0007a]
> > in C:\cygwi
> >
> n\tmp\scratch\mono-1.2.2\mcs\class\System.Drawing\System.Drawi
> ng\Font.cs:620
> > at System.Drawing.Font.ToHfont () [0x00059] in
> > C:\cygwin\tmp\scratch\mono-1.2.
> > 2\mcs\class\System.Drawing\System.Drawing\Font.cs:267
> > at (wrapper remoting-invoke-with-check)
> System.Drawing.Font:ToHfont ()
> > at System.Windows.Forms.XplatUIWin32.GetFontMetrics
> > (System.Drawing.Graphics g
> > , System.Drawing.Font font, System.Int32& ascent, System.Int32&
> > descent)
> > [0x0001
> > 3] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Syste
> > m.Wi
> > ndows.Forms\XplatUIWin32.cs:2019
> > at System.Windows.Forms.XplatUI.GetFontMetrics
> > (System.Drawing.Graphics g, Sys tem.Drawing.Font font,
> System.Int32&
> > ascent, System.Int32& descent) [0x00000] in
> >
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Syste
> > m.Wind
> > ows
> > .Forms\XplatUI.cs:516
> > at System.Windows.Forms.Line.RecalculateLine
> > (System.Drawing.Graphics g, Syste m.Windows.Forms.Document doc)
> > [0x002dd] in C:\cygwin\tmp\scratch\mono-1.2.2\mcs\
> > class\Managed.Windows.Forms\System.Windows.Forms\TextControl.cs:525
> > at System.Windows.Forms.Document.RecalculateDocument
> > (System.Drawing.Graphics
> > g, Int32 start, Int32 end, Boolean optimize) [0x0007f] in
> > C:\cygwin\tmp\scratch\
> >
> mono-1.2.2\mcs\class\Managed.Windows.Forms\System.Windows.Form
> s\TextControl.
> > cs:3
> > 791
> > at System.Windows.Forms.Document.RecalculateDocument
> > (System.Drawing.Graphics
> > g) [0x00000] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms
> > \System.Windows.Forms\TextControl.cs:3745
> > at System.Windows.Forms.TextBoxBase.CalculateDocument ()
> [0x0000c]
> > in C:\cygwi
> >
> n\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\System.Window
> > s.Form
> > s\Te
> > xtBoxBase.cs:1591
> > at System.Windows.Forms.TextBoxBase.AppendText
> (System.String text)
> > [0x00077] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Syste
> > m.Wind
> > o
> > ws.Forms\TextBoxBase.cs:639
> > at <0x00000> <unknown method>
> > at (wrapper managed-to-native)
> > System.Reflection.MonoMethod:InternalInvoke
> > (ob
> > ject,object[])
> > at System.Reflection.MonoMethod.Invoke (System.Object obj,
> > BindingFlags invoke Attr, System.Reflection.Binder binder,
> > System.Object[] parameters, System.Global
> ization.CultureInfo culture)
> > [0x00040] in C:\cygwin\tmp\scratch\mono-1.2.2\mcs\c
> > lass\corlib\System.Reflection\MonoMethod.cs:143 --- End of inner
> > exception stack trace ---
> >
> > at System.Reflection.MonoMethod.Invoke (System.Object obj,
> > BindingFlags invoke Attr, System.Reflection.Binder binder,
> > System.Object[] parameters, System.Global
> ization.CultureInfo culture)
> > [0x00065] in C:\cygwin\tmp\scratch\mono-1.2.2\mcs\c
> > lass\corlib\System.Reflection\MonoMethod.cs:149
> > at System.Reflection.MethodBase.Invoke (System.Object obj,
> > System.Object[] par
> > ameters) [0x00000] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System.R
> > eflection\MethodBase.cs:86
> > at System.Delegate.DynamicInvokeImpl (System.Object[] args)
> > [0x00051] in C:\cy
> > gwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System\Delegate.cs:285
> > at System.MulticastDelegate.DynamicInvokeImpl
> (System.Object[] args)
> > [0x00018] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System\MulticastDele
> > gate.c
> > s:67
> > at System.Delegate.DynamicInvoke (System.Object[] args)
> [0x00000] in
> > C:\cygwin
> > \tmp\scratch\mono-1.2.2\mcs\class\corlib\System\Delegate.cs:257
> > at System.Windows.Forms.Control.Invoke (System.Delegate method,
> > System.Object[ ] args) [0x0000b] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.
> > Forms\System.Windows.Forms\Control.cs:2931
> > at (wrapper remoting-invoke-with-check)
> > System.Windows.Forms.Control:Invoke (S
> > ystem.Delegate,object[])
> > at NUnit.UiKit.TextBoxWriter.AppendToTextBox (System.String s)
> > [0x00000] in D:
> > \Dev\NUnit\nunit-2.4\src\GuiComponents\UiKit\TextBoxWriter.cs:176
> > at NUnit.UiKit.TextBoxWriter.Write (System.String s) [0x00034] in
> > D:\Dev\NUnit
> > \nunit-2.4\src\GuiComponents\UiKit\TextBoxWriter.cs:125
> > at NUnit.UiKit.TextBoxWriter.Write (Char c) [0x00000] in
> > D:\Dev\NUnit\nunit-2.
> > 4\src\GuiComponents\UiKit\TextBoxWriter.cs:108
> > at System.IO.TextWriter.Write (System.Char[] buffer, Int32 index,
> > Int32
> > count)
> > [0x0004f] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System.IO\TextWr
> > iter.cs:201
> > at System.IO.TextWriter.Write (System.Char[] value) [0x00008] in
> > C:\cygwin\tmp
> > \scratch\mono-1.2.2\mcs\class\corlib\System.IO\TextWriter.cs:128
> > at System.IO.TextWriter.WriteLine () [0x00000] in
> > C:\cygwin\tmp\scratch\mono-1
> > .2.2\mcs\class\corlib\System.IO\TextWriter.cs:217
> > at System.IO.TextWriter.WriteLine (System.String format,
> > System.Object
> > arg0) [
> > 0x00008] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System.IO\TextWrit
> > er.cs:297
> > at NUnit.UiKit.ResultTabs.OnTestStarting (System.Object sender,
> > NUnit.Util.Tes tEventArgs args) [0x00016] in
> > D:\Dev\NUnit\nunit-2.4\src\GuiComponents\UiKit\Res
> > ultTabs.cs:376
> > at <0x00000> <unknown method>
> > at (wrapper managed-to-native)
> > System.Reflection.MonoMethod:InternalInvoke
> > (ob
> > ject,object[])
> > at System.Reflection.MonoMethod.Invoke (System.Object obj,
> > BindingFlags invoke Attr, System.Reflection.Binder binder,
> > System.Object[] parameters, System.Global
> ization.CultureInfo culture)
> > [0x00040] in C:\cygwin\tmp\scratch\mono-1.2.2\mcs\c
> > lass\corlib\System.Reflection\MonoMethod.cs:143 --- End of inner
> > exception stack trace ---
> >
> > at System.Reflection.MonoMethod.Invoke (System.Object obj,
> > BindingFlags invoke Attr, System.Reflection.Binder binder,
> > System.Object[] parameters, System.Global
> ization.CultureInfo culture)
> > [0x00065] in C:\cygwin\tmp\scratch\mono-1.2.2\mcs\c
> > lass\corlib\System.Reflection\MonoMethod.cs:149
> > at System.Reflection.MethodBase.Invoke (System.Object obj,
> > System.Object[] par
> > ameters) [0x00000] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System.R
> > eflection\MethodBase.cs:86
> > at System.Delegate.DynamicInvokeImpl (System.Object[] args)
> > [0x00051] in C:\cy
> > gwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System\Delegate.cs:285
> > at System.MulticastDelegate.DynamicInvokeImpl
> (System.Object[] args)
> > [0x00018] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\corlib\System\MulticastDele
> > gate.c
> > s:67
> > at System.Delegate.DynamicInvoke (System.Object[] args)
> [0x00000] in
> > C:\cygwin
> > \tmp\scratch\mono-1.2.2\mcs\class\corlib\System\Delegate.cs:257
> > at System.Windows.Forms.XplatUIDriverSupport.ExecuteClientMessage
> > (GCHandle gc
> > handle) [0x0003d] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.
> > Forms\System.Windows.Forms\XplatUIDriver.cs:335
> > at System.Windows.Forms.XplatUIWin32.GetMessage
> > (System.Windows.Forms.MSG& msg , IntPtr hWnd, Int32
> wFilterMin, Int32
> > wFilterMax, Boolean blocking) [0x00131] i n
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Syste
> > m.Wind
> > ow
> > s.Forms\XplatUIWin32.cs:1532
> > at System.Windows.Forms.XplatUIWin32.GetMessage (System.Object
> > queue_id, Syste m.Windows.Forms.MSG& msg, IntPtr hWnd, Int32
> > wFilterMin, Int32 wFilterMax) [0x00 000] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.For
> ms\System.
> > Windows.Forms\XplatUIWin32.cs:1480
> > at System.Windows.Forms.XplatUI.GetMessage (System.Object
> queue_id,
> > System.Win dows.Forms.MSG& msg, IntPtr hWnd, Int32
> wFilterMin, Int32
> > wFilterMax) [0x00000] in
> >
> C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Syste
> > m.Wind
> > o
> > ws.Forms\XplatUI.cs:527
> > at System.Windows.Forms.Application.RunLoop (Boolean Modal,
> > System.Windows.For ms.ApplicationContext context) [0x002be] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs
> > \class\Managed.Windows.Forms\System.Windows.Forms\Application.cs:552
> > at System.Windows.Forms.Application.Run (System.Windows.Forms.Form
> > mainForm) [
> > 0x00000] in
> > C:\cygwin\tmp\scratch\mono-1.2.2\mcs\class\Managed.Windows.Forms\Sys
> > tem.Windows.Forms\Application.cs:430
> > at NUnit.Gui.AppEntry.Main (System.String[] args) [0x001d1] in
> > D:\Dev\NUnit\nu
> > nit-2.4\src\GuiRunner\nunit-gui\AppEntry.cs:123
> > at NUnit.Gui.Class1.Main (System.String[] args) [0x00000] in
> > D:\Dev\NUnit\nuni
> > t-2.4\src\GuiRunner\nunit-gui-exe\Class1.cs:16
> >
> >
> >
> >
> >
> >
> > _______________________________________________
> > Mono-devel-list mailing list
> > Mono-devel-list at lists.ximian.com
> > http://lists.ximian.com/mailman/listinfo/mono-devel-list
>
>
More information about the Mono-devel-list
mailing list