
On 2007-November-30 , at 20:40 , J.B.C.Engelen@...1578... wrote:
Mental:
Ah, this is a bug in Inkscape::LayerManager::_rebuild(). Everything after the call to _clear() should be skipped if _document is NULL.
Feel free commit a fix along those lines, I may not get to it soon.
Done.
Thanks a lot. Unfortunately this got rid of the first messages[1] but Inkscape still crashes with the message: $ ./inkscape
Emergency save activated! Emergency save completed. Inkscape will close now. If you can reproduce this crash, please file a bug at www.inkscape.org with a detailed description of the steps leading to the crash, so we can fix it.
(inkscape:385): GLib-WARNING **: g_main_loop_run(): called recursively from within a source's check() or prepare() member, iteration not possible.
Gdb log with a break points where I thought they could be useful:
(gdb) b _handleWindowNeedsDisplay Function "_handleWindowNeedsDisplay" not defined. Make breakpoint pending on future shared library load? (y or [n]) y Breakpoint 1 (_handleWindowNeedsDisplay) pending. (gdb) r Starting program: /Users/jiho/Software/inkscape/trunk_devel/Build/bin/ inkscape Reading symbols for shared libraries .++.... +.............................................................++++.+++ ++++++............++..+++++++++++.++.....++++++++ done Breakpoint 1 at 0x93360cc4 Pending breakpoint 1 - "_handleWindowNeedsDisplay" resolved Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries . done Reading symbols for shared libraries . done
Breakpoint 1, 0x93360cc4 in _handleWindowNeedsDisplay ()
At this point the main window has appeared but is empty (just
grey without even icons)
(gdb) bt #0 0x93360cc4 in _handleWindowNeedsDisplay () #1 0x9082dd0e in __CFRunLoopDoObservers () #2 0x9082cdb0 in CFRunLoopRunSpecific () #3 0x9082ca6e in CFRunLoopRunInMode () #4 0x92def878 in RunCurrentEventLoopInMode () #5 0x92deeeb9 in ReceiveNextEventCommon () #6 0x92deedd9 in BlockUntilNextEventMatchingListInMode () #7 0x93295485 in _DPSNextEvent () #8 0x93295076 in -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] () #9 0x00dbfdb6 in gdk_event_prepare () #10 0x0217ade4 in g_main_context_prepare () #11 0x0217b4a6 in g_main_context_iterate () #12 0x0217bbbd in g_main_loop_run () #13 0x01ca8a87 in gtk_main () #14 0x0184d888 in Gtk::Main::run () #15 0x00004771 in sp_main_gui () #16 0x001679bc in Inkscape::NSApplication::Application::run () #17 0x00003677 in main () (gdb) s Single stepping until exit from function _handleWindowNeedsDisplay, which has no line number information. 0x9082dd0e in __CFRunLoopDoObservers ()
At this point icons appeared. However this point cannot always
be reached. Most of the time, stepping from there reaches the EXC_BAD_ACCESS failure below directly.
(gdb) s Single stepping until exit from function __CFRunLoopDoObservers, which has no line number information.
Breakpoint 1, 0x93360cc4 in _handleWindowNeedsDisplay () (gdb) s Single stepping until exit from function _handleWindowNeedsDisplay, which has no line number information.
Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000003c 0x93360ce6 in _handleWindowNeedsDisplay ()
Is there something else I can do? _handleWindowNeedsDisplay is not Inkscape nor GTK specific, all OS X programs use this apparently (so it must be gtk-quartz related but not gtk in itself). However I guess there must be a way of tracking down what causes it to fail more properly.
Thanks in advance for your help.
[1] previous error message:
** (inkscape:9060): CRITICAL **: const GSList* sp_document_get_resource_list(SPDocument*, const gchar*): assertion `document != NULL' failed
** (inkscape:9060): CRITICAL **: const GSList* sp_document_get_resource_list(SPDocument*, const gchar*): assertion `document != NULL' failed
Emergency save activated! Emergency save completed. Inkscape will close now. If you can reproduce this crash, please file a bug at www.inkscape.org with a detailed description of the steps leading to the crash, so we can fix it.
(inkscape:9060): GLib-WARNING **: g_main_loop_run(): called recursively from within a source's check() or prepare() member, iteration not possible.
JiHO --- http://jo.irisson.free.fr/