https://bugs.winehq.org/show_bug.cgi?id=48525
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Summary|0009:err:gdi:alloc_gdi_hand |Commercial .NET 2.0 app |le out of GDI object |crashes after few days with |handles, expect a crash |'gdi:alloc_gdi_handle out | |of GDI object handles, | |expect a crash' CC| |focht@gmx.net Keywords| |dotnet
--- Comment #1 from Anastasius Focht focht@gmx.net --- Hello Robert,
--- quote --- my +seh log file is full of
0048:trace:seh:__regs_RtlUnwind handler at 0x7bc82da0 returned 1 0048:trace:seh:raise_exception code=40010006 flags=0 addr=0x7b43e223 ip=7b43e223 tid=0048 0048:trace:seh:raise_exception info[0]=00000041 0048:trace:seh:raise_exception info[1]=0d061dd8 0048:trace:seh:raise_exception eax=7b42a5c1 ebx=00000004 ecx=0733ef20 edx=0733efd0 esi=00000041 edi=40010006 0048:trace:seh:raise_exception ebp=0733ef78 esp=0733eef4 cs=300023 ds=002b --- quote ---
these exceptions are benign. The app uses 'OutputDebugString' API which raises exception 'DBG_PRINTEXCEPTION_C' = 0x40010006 by design (to be seen by debuggers/monitor tools).
You could add '+debugstr' to 'WINEDEBUG' and see the actual message.
In general try to run with more recent Wine version, preferably Wine 5.0 release. Are you really sure you don't have a handle leak as well on Windows?
Maybe this helps (on Windows):
https://codingsight.com/gdi-leak-handling/
In general handle leaks can also be a side effect of another bug, where the resource cleanup/freeing path is not executed.
Since this is a .NET application make sure you actually call 'Dispose' on all objects that implement 'IDisposable'. Assigning new object instance each time won't free the underlying OS resources (GDI objects). This is a common mistake in .NET development. If you interface with unmanaged code (using DllImport) you need to pay attention to proper OS resource usage as well.
Regards