gEDA-dev: [PCB] segfault with CVS version
Igor2
igor2 at inno.bme.hu
Sun Oct 29 07:39:18 EST 2006
Hi,
A reproducable segfault: run the latest CVS pcb; open the library window,
select pcblib/geda/1206; on the layout, _before_ you place it, rotate the
buffer 90 degree CCW -> crash.
>From gdb:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 16384 (LWP 8505)]
0x080b6daa in PlowsPolygon (Data=0x8176890, type=512, ptr1=0x82fcf00,
ptr2=0x82f7f28, call_back=0x80b691e <add_plow>) at polygon.c:1187
1187 GROUP_LOOP (Data, group);
The problem seems to be that Data->pcb is 0x0 while GROUP_LOOP tries to
use Data->pcb->LayerGroups.
Here are some more info in case noone else can reproduce the crash:
(gdb) p *Data
$3 = {ViaN = 0, ViaMax = 0, ElementN = 1, ElementMax = 50, RatN = 0,
RatMax = 0, LayerN = 0, Via = 0x0, Element = 0x82fcf00, Rat = 0x0,
via_tree = 0x0, element_tree = 0x8258400, pin_tree = 0x0,
pad_tree = 0x82f73e0, name_tree = {0x82f56d0, 0x82e5758, 0x82e4eb0},
rat_tree = 0x0, pcb = 0x0, Layer = {{Name = 0x0, LineN = 0, TextN = 0,
PolygonN = 0, ArcN = 0, LineMax = 0, TextMax = 0, PolygonMax = 0,
ArcMax = 0, Line = 0x0, Text = 0x0, Polygon = 0x0, Arc = 0x0,
line_tree = 0x0, text_tree = 0x0, polygon_tree = 0x0, arc_tree =
0x0,
On = 0 '\0', Color = 0x0, SelectedColor = 0x0} <repeats 18 times>}}
The backtrace:
#0 0x080b6daa in PlowsPolygon (Data=0x8176890, type=512, ptr1=0x82fcf00,
ptr2=0x82f7f28, call_back=0x80b691e <add_plow>) at polygon.c:1187
#1 0x080b6fcf in RestoreToPolygon (Data=0x8176890, type=512,
ptr1=0x82fcf00,
ptr2=0x82f7f28) at polygon.c:1221
#2 0x080c75e9 in RotateElementLowLevel (Data=0x8176890,
Element=0x82fcf00,
X=0, Y=0, Number=1 '\001') at rotate.c:251
#3 0x080734c2 in RotateBuffer (Buffer=0x81294c0, Number=1 '\001')
at buffer.c:877
#4 0x0806346b in ActionPasteBuffer (argc=2, argv=0xbfffeba0, x=0, y=0)
at action.c:5669
#5 0x080d9d52 in hid_actionv (name=0x8115c93 "PasteBuffer", argc=2,
argv=0xbfffeba0) at hid/common/actions.c:216
#6 0x080d9c54 in hid_actionl (name=0x8115c93 "PasteBuffer")
at hid/common/actions.c:194
#7 0x080ebbf9 in rotate_buffer_CCW_cb (action=0x8231260, port=0x8129660)
at hid/gtk/gui-top-window.c:895
#8 0x4043d3b6 in g_cclosure_marshal_VOID__VOID ()
from /usr/lib/libgobject-2.0.so.0
#9 0x4042b6b6 in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0
#10 0x4043cec8 in g_signal_emit_by_name () from
/usr/lib/libgobject-2.0.so.0
#11 0x4043bf4c in g_signal_emit_valist () from
/usr/lib/libgobject-2.0.so.0
#12 0x4043c1e6 in g_signal_emit () from /usr/lib/libgobject-2.0.so.0
#13 0x40096d53 in _gtk_action_emit_activate ()
... (deleted the rest, I guess it's not too interesting how deep gtk is;)
Regards,
Igor2
More information about the geda-dev
mailing list