GNOME Bugzilla – Bug 357195
GtkFileChooser widget crasches
Last modified: 2006-10-03 16:46:12 UTC
GtkFileChooser widget in GTK+ v2.10.3 for win32 always crash on this platform. This is output from gtk-demo.exe: Microsoft Windows XP [Wersja 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\GTK+\bin>gtk-demo.exe (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle =010CC270 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle =010CC6A8 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle =010CC9C0 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=01458F20 still has handle =010CC8D0 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle =010CC7F8 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle =010CC888 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle =010CC810 at finalization which is NOT CANCELLED! (gtk-demo.exe:1368): Gtk-WARNING **: file_system_win32=010CA8E0 still has handle =010CC7C8 at finalization which is NOT CANCELLED! C:\GTK+\bin> IAre you possible to fix it in v2.10.4?
Morover I can say, that it concer to all types of GtkFileChooser widget: opening files, saving files, selecting folders and creating folders.
Error occurs only when I try to destroy widget or it's parent.
I have seen these warnings, too. gtkfilesystemwin32.c is supposed to match gtkfilesystemunix.c as closely as possible. Does the corresponding warning occur on Unix? (You you really get a crash, btw? Have you tried debugging it and see where it crashes?) It is not entirely clear to me whether this warning is supposed to mean something like "this should never happen, but I'll try to continue anyway" or whether it just means "the author doesn't fully understand why this happens, but things should work fine anyway"... This hopefully is obvious, but anyway: To see the actual differences between gtkfilesystemunix.c and gtkfilesystemwin32.c, do: sed -e 's/Win32/Unix/' -e 's/WIN32/UNIX/' -e 's/win32/unix/' <gtkfilesystemwin32.c >1.c diff -pbu gtkfilesystemunix.c 1.c There shouldn't be any difference that would explain why the warning would occur only on Win32, I think?
Again my english knowledge makes me bad... Yes I tried to debug gtk-demo.exe, this is backtrace generated by GDB for windows: (gdb) bt
+ Trace 73319
i'm not sure if this will be helpful... :| This occured when I clicked cross button it title bar of window named "Pickers". moreover I tested it again in my own code and it stall crash, when I'm calling gtk_widget_destroy () on some GtkFileChooser based widget or it's parent. I'll compare those two files, when I back home...
I can reproduce the crash everytime with the save versions of Windows and Gtk+ by using the Pickers demo from gtk-demo. Here is the corresponding backtrace: (7a0.754): Access violation - code c0000005 (first chance) First chance exceptions are reported before any exception handling. This exception may be expected and handled. eax=00000000 ebx=00000000 ecx=00000000 edx=00000000 esi=00000000 edi=00000000 eip=77c478c0 esp=0022f49c ebp=0022f818 iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\MSVCRT.dll - MSVCRT!strlen+0x20: 77c478c0 8b01 mov eax,[ecx] ds:0023:00000000=???????? 0:000> k *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\P rogram Files\Evolution\bin\libglib-2.0-0.dll - ChildEBP RetAddr WARNING: Stack unwind information not available. Following frames may be wrong. 0022f818 004ccc47 MSVCRT!strlen+0x20 0022f838 004c37f4 libglib_2_0_0!g_win32_locale_filename_from_utf8+0x1d37 0022f858 004b3816 libglib_2_0_0!g_vasprintf+0x24 0022f878 004a482e libglib_2_0_0!g_strdup_vprintf+0x26 0022fce8 004a4a36 libglib_2_0_0!g_logv+0x1fe *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\P rogram Files\Evolution\bin\libgobject-2.0-0.dll - 0022fd08 00620e27 libglib_2_0_0!g_log+0x26 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\P rogram Files\Evolution\bin\libgtk-win32-2.0-0.dll - 0022fd38 00949f42 libgobject_2_0_0!g_type_check_instance_cast+0x107 0022fd68 006077a9 libgtk_win32_2_0_0!gtk_file_system_win32_path_compare+0x2b2 0022fd98 0094a50b libgobject_2_0_0!g_object_unref+0x159 0022fdc8 0049d8f7 libgtk_win32_2_0_0!gtk_file_system_win32_path_compare+0x87b 0022fe18 0049edcb libglib_2_0_0!g_main_context_dispatch+0x197 0022fe58 0049efaa libglib_2_0_0!g_main_context_acquire+0x3db 0022fe88 008043be libglib_2_0_0!g_main_loop_run+0x16a *** ERROR: Module load completed but symbols could not be loaded for C:\Program Files\Evolution\bin\gtk-demo.exe 0022fed8 00413b68 libgtk_win32_2_0_0!gtk_main+0x9e 0022ff78 004011e7 gtk_demo+0x13b68 0022ffb0 00401238 gtk_demo+0x11e7 *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\W INDOWS\system32\kernel32.dll - 0022ffc0 7c816fd7 gtk_demo+0x1238 0022fff0 00000000 kernel32!RegisterWaitForInputIdle+0x49
This error doesn't occur on GTK+ 2.10.4 for win32 for me any more. Can some check it on his machine and close this bug report, if this bug won't generate any problems?
Gtk+ 2.10.4 works correctly here too. I suggest to close this bug.
Thanks for confirming.