Difference between revisions of "Annoying Crash"
m (link fix) |
|||
Line 14: | Line 14: | ||
Call stack: | Call stack: | ||
0061AFD4 inkscape.exe:0061AFD4 IntLigne::Copy(int, BitLigne**) Ligne.cpp:1597 | 0061AFD4 inkscape.exe:0061AFD4 [[IntLigne]]::Copy(int, [[BitLigne]]**) Ligne.cpp:1597 | ||
... | ... | ||
c_full[0]=as[0]->fullB[(i+1-theSt)>>3] | as[0]->partB[(i+1-theSt)>>3]; | c_full[0]=as[0]->fullB[(i+1-theSt)>>3] | as[0]->partB[(i+1-theSt)>>3]; | ||
Line 23: | Line 23: | ||
... | ... | ||
0060[[B5CB]] inkscape.exe:0060[[B5CB]] nr_pixblock_render_bpath_rgba(Shape*, unsigned, [[NRRectL]]&, char*, int) canvas-bpath.cpp:625 | |||
... | ... | ||
dest.stv=y; | dest.stv=y; | ||
dest.buffer=ligStart; | dest.buffer=ligStart; | ||
> theIL->Raster(dest,&color, | > theIL->Raster(dest,&color,bpath_run_[[A8_OR]]); | ||
ligStart=((uint32_t*)(((char*)ligStart)+stride)); | ligStart=((uint32_t*)(((char*)ligStart)+stride)); | ||
} | } | ||
... | ... | ||
0060[[C8DB]] inkscape.exe:0060[[C8DB]] sp_canvas_bpath_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) canvas-bpath.cpp:316 | |||
... | ... | ||
} | } | ||
Line 41: | Line 41: | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
0046[[A8BC]] inkscape.exe:0046[[A8BC]] sp_canvas_paint_rect(_SPCanvas*, int, int, int, int) sp-canvas.cpp:1516 | |||
... | ... | ||
if (canvas->root->object.flags & SP_CANVAS_ITEM_VISIBLE) { | if (canvas->root->object.flags & [[SP_CANVAS_ITEM_VISIBLE]]) { | ||
> SP_CANVAS_ITEM_GET_CLASS (canvas->root)->render (canvas->root, &buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (canvas->root)->render (canvas->root, &buf); | ||
} | } | ||
... | ... | ||
0046[[A3F6]] inkscape.exe:0046[[A3F6]] paint(_SPCanvas*) sp-canvas.cpp:1716 | |||
... | ... | ||
Line 89: | Line 89: | ||
... | ... | ||
/* Paint if able to */ | /* Paint if able to */ | ||
if (GTK_WIDGET_DRAWABLE (canvas)) { | if ([[GTK_WIDGET_DRAWABLE]] (canvas)) { | ||
> return paint (canvas); | > return paint (canvas); | ||
} | } | ||
Line 97: | Line 97: | ||
004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 | 004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 | ||
... | ... | ||
SPCanvas *canvas = SP_CANVAS (data); | SPCanvas *canvas = [[SP_CANVAS]] (data); | ||
> const int ret = do_update (canvas); | > const int ret = do_update (canvas); | ||
Line 104: | Line 104: | ||
... | ... | ||
01[[D9C865]] libglib-2.0-0.dll:01[[D9C865]] g_idle_remove_by_data | |||
01[[D9D07C]] libglib-2.0-0.dll:01[[D9D07C]] g_idle_remove_by_data | |||
01[[D9D6E3]] libglib-2.0-0.dll:01[[D9D6E3]] g_idle_remove_by_data | |||
01[[D9A21F]] libglib-2.0-0.dll:01[[D9A21F]] g_main_loop_run | |||
01FAD109 libgtk-win32-2.0-0.dll:01FAD109 gtk_main | 01FAD109 libgtk-win32-2.0-0.dll:01FAD109 gtk_main | ||
00401B51 inkscape.exe:00401B51 | 00401B51 inkscape.exe:00401B51 | ||
Line 113: | Line 113: | ||
0040122D inkscape.exe:0040122D | 0040122D inkscape.exe:0040122D | ||
00401258 inkscape.exe:00401258 | 00401258 inkscape.exe:00401258 | ||
77[[E992A6]] KERNEL32.dll:77[[E992A6]] [[GetCommandLineW]] | |||
</tt> | </tt> | ||
Line 128: | Line 128: | ||
Call stack: | Call stack: | ||
00619DA9 inkscape.exe:00619DA9 IntLigne::Copy(int, BitLigne**) Ligne.cpp:1595 | 00619DA9 inkscape.exe:00619DA9 [[IntLigne]]::Copy(int, [[BitLigne]]**) Ligne.cpp:1595 | ||
... | ... | ||
int chg=(i+1-theSt)&7; | int chg=(i+1-theSt)&7; | ||
Line 137: | Line 137: | ||
... | ... | ||
005[[D13CE]] inkscape.exe:005[[D13CE]] nr_pixblock_render_ctrl_rgba(Shape*, unsigned, [[NRRectL]]&, char*, int) sp-ctrlline.cpp:487 | |||
... | ... | ||
dest.stv=y; | dest.stv=y; | ||
dest.buffer=ligStart; | dest.buffer=ligStart; | ||
> theIL->Raster(dest,&color, | > theIL->Raster(dest,&color,ctrl_run_[[A8_OR]]); | ||
ligStart=((uint32_t*)(((char*)ligStart)+stride)); | ligStart=((uint32_t*)(((char*)ligStart)+stride)); | ||
} | } | ||
... | ... | ||
005D2082 inkscape.exe:005D2082 sp_ctrlline_render( | 005D2082 inkscape.exe:005D2082 sp_ctrlline_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-ctrlline.cpp:173 | ||
... | ... | ||
if (ctrlline->shp) { | if (ctrlline->shp) { | ||
Line 155: | Line 155: | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
004694D5 inkscape.exe:004694D5 sp_canvas_group_render( | 004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_[[SPCanvasItem]]*, [[SPCanvasBuf]]*) sp-canvas.cpp:790 | ||
... | ... | ||
(child->y2 > buf->rect.y0)) { | (child->y2 > buf->rect.y0)) { | ||
if (SP_CANVAS_ITEM_GET_CLASS (child)->render) | if ([[SP_CANVAS_ITEM_GET_CLASS]] (child)->render) | ||
> SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (child)->render (child, buf); | ||
} | } | ||
} | } | ||
... | ... | ||
0046[[A8BC]] inkscape.exe:0046[[A8BC]] sp_canvas_paint_rect(_SPCanvas*, int, int, int, int) sp-canvas.cpp:1516 | |||
... | ... | ||
if (canvas->root->object.flags & SP_CANVAS_ITEM_VISIBLE) { | if (canvas->root->object.flags & [[SP_CANVAS_ITEM_VISIBLE]]) { | ||
> SP_CANVAS_ITEM_GET_CLASS (canvas->root)->render (canvas->root, &buf); | > [[SP_CANVAS_ITEM_GET_CLASS]] (canvas->root)->render (canvas->root, &buf); | ||
} | } | ||
... | ... | ||
0046[[A3F6]] inkscape.exe:0046[[A3F6]] paint(_SPCanvas*) sp-canvas.cpp:1716 | |||
... | ... | ||
Line 203: | Line 203: | ||
... | ... | ||
/* Paint if able to */ | /* Paint if able to */ | ||
if (GTK_WIDGET_DRAWABLE (canvas)) { | if ([[GTK_WIDGET_DRAWABLE]] (canvas)) { | ||
> return paint (canvas); | > return paint (canvas); | ||
} | } | ||
Line 211: | Line 211: | ||
004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 | 004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 | ||
... | ... | ||
SPCanvas *canvas = SP_CANVAS (data); | SPCanvas *canvas = [[SP_CANVAS]] (data); | ||
> const int ret = do_update (canvas); | > const int ret = do_update (canvas); | ||
Line 218: | Line 218: | ||
... | ... | ||
01[[D8C865]] libglib-2.0-0.dll:01[[D8C865]] g_idle_remove_by_data | |||
01[[D8D07C]] libglib-2.0-0.dll:01[[D8D07C]] g_idle_remove_by_data | |||
01[[D8D6E3]] libglib-2.0-0.dll:01[[D8D6E3]] g_idle_remove_by_data | |||
01[[D8A21F]] libglib-2.0-0.dll:01[[D8A21F]] g_main_loop_run | |||
01[[F9D109]] libgtk-win32-2.0-0.dll:01[[F9D109]] gtk_main | |||
00401B51 inkscape.exe:00401B51 | 00401B51 inkscape.exe:00401B51 | ||
004018D6 inkscape.exe:004018D6 | 004018D6 inkscape.exe:004018D6 | ||
0040122D inkscape.exe:0040122D | 0040122D inkscape.exe:0040122D | ||
00401258 inkscape.exe:00401258 | 00401258 inkscape.exe:00401258 | ||
77[[E992A6]] KERNEL32.dll:77[[E992A6]] [[GetCommandLineW]] | |||
</tt> | </tt> |
Revision as of 02:32, 22 January 2006
The following is debug data generated after crashing inkscape in the freehand tool on my windows 2000 machine. Machine spec is 2.1Ghz Athlon, 512Mb Win2k. Can also crash it in the node edit and dynamic draw modes. John
inkscape.exe caused an Access Violation at location 0061afd4 in module inkscape.exe Reading from location 03a3c000.
Registers: eax=0022fb80 ebx=0022fb80 ecx=038ea570 edx=00000002 esi=03a3bff8 edi=0399f6e0 eip=0061afd4 esp=0022f9c0 ebp=0022faa8 iopl=0 nv up ei pl nz na pe nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00200202
Call stack: 0061AFD4 inkscape.exe:0061AFD4 IntLigne::Copy(int, BitLigne**) Ligne.cpp:1597 ... c_full[0]=as[0]->fullB[(i+1-theSt)>>3] | as[0]->partB[(i+1-theSt)>>3]; c_full[1]=as[1]->fullB[(i+1-theSt)>>3] | as[1]->partB[(i+1-theSt)>>3]; > c_full[2]=as[2]->fullB[(i+1-theSt)>>3] | as[2]->partB[(i+1-theSt)>>3]; c_full[3]=as[3]->fullB[(i+1-theSt)>>3] | as[3]->partB[(i+1-theSt)>>3]; } else { ...
0060B5CB inkscape.exe:0060B5CB nr_pixblock_render_bpath_rgba(Shape*, unsigned, NRRectL&, char*, int) canvas-bpath.cpp:625 ... dest.stv=y; dest.buffer=ligStart; > theIL->Raster(dest,&color,bpath_run_A8_OR); ligStart=((uint32_t*)(((char*)ligStart)+stride)); } ...
0060C8DB inkscape.exe:0060C8DB sp_canvas_bpath_render(_SPCanvasItem*, SPCanvasBuf*) canvas-bpath.cpp:316 ... } if ( cbp->stroke_shp ) { > nr_pixblock_render_bpath_rgba (cbp->stroke_shp,cbp->stroke_rgba,area,(char*)buf->buf, buf->buf_rowstride); } #else ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
0046A8BC inkscape.exe:0046A8BC sp_canvas_paint_rect(_SPCanvas*, int, int, int, int) sp-canvas.cpp:1516 ...
if (canvas->root->object.flags & SP_CANVAS_ITEM_VISIBLE) { > SP_CANVAS_ITEM_GET_CLASS (canvas->root)->render (canvas->root, &buf); }
...
0046A3F6 inkscape.exe:0046A3F6 paint(_SPCanvas*) sp-canvas.cpp:1716 ...
if ((x0 < x1) && (y0 < y1)) { > sp_canvas_paint_rect (canvas, x0, y0, x1, y1); } } ...
0046875B inkscape.exe:0046875B do_update(_SPCanvas*) sp-canvas.cpp:1738 ... /* Paint if able to */ if (GTK_WIDGET_DRAWABLE (canvas)) { > return paint (canvas); }
...
004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 ... SPCanvas *canvas = SP_CANVAS (data);
> const int ret = do_update (canvas);
if (ret) { ...
01D9C865 libglib-2.0-0.dll:01D9C865 g_idle_remove_by_data 01D9D07C libglib-2.0-0.dll:01D9D07C g_idle_remove_by_data 01D9D6E3 libglib-2.0-0.dll:01D9D6E3 g_idle_remove_by_data 01D9A21F libglib-2.0-0.dll:01D9A21F g_main_loop_run 01FAD109 libgtk-win32-2.0-0.dll:01FAD109 gtk_main 00401B51 inkscape.exe:00401B51 004018D6 inkscape.exe:004018D6 0040122D inkscape.exe:0040122D 00401258 inkscape.exe:00401258 77E992A6 KERNEL32.dll:77E992A6 GetCommandLineW
Commenting out bpath_liv in canvas_bpath.h makes freehand and dyna draw more stable (but slow), however node edit still crashes:
inkscape.exe caused an Access Violation at location 00619da9 in module inkscape.exe Reading from location 04a98000.
Registers: eax=0022fb80 ebx=04a97ff8 ecx=037fedc8 edx=00000002 esi=00000008 edi=03adf2d8 eip=00619da9 esp=0022f9c0 ebp=0022faa8 iopl=0 nv up ei pl nz ac pe nc cs=001b ss=0023 ds=0023 es=0023 fs=0038 gs=0000 efl=00000212
Call stack: 00619DA9 inkscape.exe:00619DA9 IntLigne::Copy(int, BitLigne**) Ligne.cpp:1595 ... int chg=(i+1-theSt)&7; if ( chg == 0 ) { > c_full[0]=as[0]->fullB[(i+1-theSt)>>3] | as[0]->partB[(i+1-theSt)>>3]; c_full[1]=as[1]->fullB[(i+1-theSt)>>3] | as[1]->partB[(i+1-theSt)>>3]; c_full[2]=as[2]->fullB[(i+1-theSt)>>3] | as[2]->partB[(i+1-theSt)>>3]; ...
005D13CE inkscape.exe:005D13CE nr_pixblock_render_ctrl_rgba(Shape*, unsigned, NRRectL&, char*, int) sp-ctrlline.cpp:487 ... dest.stv=y; dest.buffer=ligStart; > theIL->Raster(dest,&color,ctrl_run_A8_OR); ligStart=((uint32_t*)(((char*)ligStart)+stride)); } ...
005D2082 inkscape.exe:005D2082 sp_ctrlline_render(_SPCanvasItem*, SPCanvasBuf*) sp-ctrlline.cpp:173 ... if (ctrlline->shp) { sp_canvas_buf_ensure_buf (buf); > nr_pixblock_render_ctrl_rgba (ctrlline->shp,ctrlline->rgba,area,(char*)buf->buf, buf->buf_rowstride); } #else ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
004694D5 inkscape.exe:004694D5 sp_canvas_group_render(_SPCanvasItem*, SPCanvasBuf*) sp-canvas.cpp:790 ... (child->y2 > buf->rect.y0)) { if (SP_CANVAS_ITEM_GET_CLASS (child)->render) > SP_CANVAS_ITEM_GET_CLASS (child)->render (child, buf); } } ...
0046A8BC inkscape.exe:0046A8BC sp_canvas_paint_rect(_SPCanvas*, int, int, int, int) sp-canvas.cpp:1516 ...
if (canvas->root->object.flags & SP_CANVAS_ITEM_VISIBLE) { > SP_CANVAS_ITEM_GET_CLASS (canvas->root)->render (canvas->root, &buf); }
...
0046A3F6 inkscape.exe:0046A3F6 paint(_SPCanvas*) sp-canvas.cpp:1716 ...
if ((x0 < x1) && (y0 < y1)) { > sp_canvas_paint_rect (canvas, x0, y0, x1, y1); } } ...
0046875B inkscape.exe:0046875B do_update(_SPCanvas*) sp-canvas.cpp:1738 ... /* Paint if able to */ if (GTK_WIDGET_DRAWABLE (canvas)) { > return paint (canvas); }
...
004687D0 inkscape.exe:004687D0 idle_handler(void*) sp-canvas.cpp:1758 ... SPCanvas *canvas = SP_CANVAS (data);
> const int ret = do_update (canvas);
if (ret) { ...
01D8C865 libglib-2.0-0.dll:01D8C865 g_idle_remove_by_data 01D8D07C libglib-2.0-0.dll:01D8D07C g_idle_remove_by_data 01D8D6E3 libglib-2.0-0.dll:01D8D6E3 g_idle_remove_by_data 01D8A21F libglib-2.0-0.dll:01D8A21F g_main_loop_run 01F9D109 libgtk-win32-2.0-0.dll:01F9D109 gtk_main 00401B51 inkscape.exe:00401B51 004018D6 inkscape.exe:004018D6 0040122D inkscape.exe:0040122D 00401258 inkscape.exe:00401258 77E992A6 KERNEL32.dll:77E992A6 GetCommandLineW