Difference between revisions of "Annoying Crash"

From Inkscape Wiki
Jump to navigation Jump to search
m
m (Reverted edits by Fb8I86 (Talk); changed back to last version by Colin Marquardt)
Line 16: Line 16:
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];
c_full[1]=as[1]->fullB[(i 1-theSt)>>3] | as[1]->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[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];
c_full[3]=as[3]->fullB[(i+1-theSt)>>3] | as[3]->partB[(i+1-theSt)>>3];
} else {
} else {
...
...


0060[[B5CB]]  inkscape.exe:0060[[B5CB]]  nr_pixblock_render_bpath_rgba(Shape*, unsigned, [[NRRectL]]
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]]

Revision as of 15:48, 20 April 2007

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