Difference between revisions of "Annoying Crash"

From Inkscape Wiki
Jump to navigation Jump to search
m (Reverted edits by Fb8I86 (Talk); changed back to last version by Colin Marquardt)
(delete page, the wiki is not for reporting bugs)
 
Line 1: Line 1:
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
 
  
 
<tt>
 
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 {
 
...
 
 
0060[[B5CB]]  inkscape.exe:0060[[B5CB]]  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));
 
  }
 
...
 
 
0060[[C8DB]]  inkscape.exe:0060[[C8DB]]  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);
 
}
 
}
 
...
 
 
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]]) {
 
> [[SP_CANVAS_ITEM_GET_CLASS]] (canvas->root)->render (canvas->root, &buf);
 
}
 
 
...
 
 
0046[[A3F6]]  inkscape.exe:0046[[A3F6]]  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) {
 
...
 
 
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
 
00401B51  inkscape.exe:00401B51
 
004018D6  inkscape.exe:004018D6
 
0040122D  inkscape.exe:0040122D
 
00401258  inkscape.exe:00401258
 
77[[E992A6]]  KERNEL32.dll:77[[E992A6]]  [[GetCommandLineW]]
 
</tt>
 
 
 
=== Commenting out bpath_liv in canvas_bpath.h makes freehand and dyna draw more stable (but slow), however node edit still crashes: ===
 
 
<tt>
 
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];
 
...
 
 
005[[D13CE]]  inkscape.exe:005[[D13CE]]  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);
 
}
 
}
 
...
 
 
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]]) {
 
> [[SP_CANVAS_ITEM_GET_CLASS]] (canvas->root)->render (canvas->root, &buf);
 
}
 
 
...
 
 
0046[[A3F6]]  inkscape.exe:0046[[A3F6]]  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) {
 
...
 
 
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
 
004018D6  inkscape.exe:004018D6
 
0040122D  inkscape.exe:0040122D
 
00401258  inkscape.exe:00401258
 
77[[E992A6]]  KERNEL32.dll:77[[E992A6]]  [[GetCommandLineW]]
 
 
</tt>
 
 
[[Category:Wiki Attic]]
 

Latest revision as of 14:17, 6 October 2018