Difference between revisions of "Annoying Crash"

From Inkscape Wiki
Jump to navigation Jump to search
m
m
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]]&, char*, int)  canvas-bpath.cpp:625
0060[[B5CB]]  inkscape.exe:0060[[B5CB]]  nr_pixblock_render_bpath_rgba(Shape*, unsigned, [[NRRectL]]
...
    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 22:33, 11 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