I am using the kicad EDA suite, in particular the pcbnew layout editor. When I try to manipulate
the outlines of copper fill zones (moving or deleting), the X server crashes following a segfault.
It is quite reproducible and happens on at least two computers (both with intel graphics).
Below I've pasted in a backtrace obtained following wiki instructions.
Program received signal SIGSEGV, Segmentation fault.
0x00007fec8c6e88fe in fbBresSolid (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310,
dashOffset=<optimized out>, signdx=signdx@entry=-1, signdy=signdy@entry=-1, axis=axis@entry=0,
x1=<optimized out>, y1=4, e=<optimized out>, e1=e1@entry=10, e3=e3@entry=-14, len=0, len@entry=7)
at ../../fb/fbseg.c:78
78 ../../fb/fbseg.c: No such file or directory.
#0 0x00007fec8c6e88fe in fbBresSolid (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310,
dashOffset=<optimized out>, signdx=signdx@entry=-1, signdy=signdy@entry=-1, axis=axis@entry=0,
x1=<optimized out>, y1=4, e=<optimized out>, e1=e1@entry=10, e3=e3@entry=-14, len=0, len@entry=7)
at ../../fb/fbseg.c:78
dst = 0x7fec8a627ffc
dstStride = <optimized out>
dstBpp = 32
dstXoff = <optimized out>
dstYoff = <optimized out>
pPriv = 0x7fec8a627ffc
and = 4284481535
xor = 10485760
mask = 4294967295
mask0 = 4294967295
bits = <optimized out>
#1 0x00007fec8c6e9cbf in fbSegment (pDrawable=pDrawable@entry=0x7fec95207240, pGC=pGC@entry=0x7fec95268310, x1=6,
y1=4, x2=-1, y2=-1, drawLast=drawLast@entry=0, dashOffset=dashOffset@entry=0x7fff8ef7558c)
at ../../fb/fbseg.c:620
new_x1 = 6
new_y2 = 0
clip1 = 0
clipdx = <optimized out>
err = <optimized out>
new_y1 = 4
new_x2 = 0
clip2 = 10
clipdy = <optimized out>
bres = 0x7fec8c6e8730 <fbBresSolid>
pClip = <optimized out>
pBox = 0x7fec952686b8
nBox = 7
adx = 7
ady = 5
signdx = -1
signdy = -1
e = -8
e1 = 10
e2 = <optimized out>
e3 = -14
len = 7
axis = 0
octant = 6
dashoff = 0
doff = <optimized out>
bias = 216
oc1 = <optimized out>
oc2 = <optimized out>
#2 0x00007fec8c6de33c in fbPolySegment32 (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nseg=<optimized out>,
pseg=<optimized out>) at ../../fb/fbbits.h:760
pts = 0x7fec95265890
xoff = 0
yoff = 0
bias = 216
dst = 0x7fec8a628000
dstStride = 384
dstXoff = 0
dstYoff = 0
bits = <optimized out>
bitsBase = 0x7fec8a628000
bitsStride = 384
xorBits = 10485760
andBits = 4284481535
xor = 10485760
and = 4284481535
dashoffset = 7
ul = 0
lr = 9044317
pt1 = <optimized out>
pt2 = <optimized out>
e = <optimized out>
e1 = <optimized out>
e3 = <optimized out>
len = <optimized out>
stepmajor = <optimized out>
stepminor = <optimized out>
octant = <optimized out>
capNotLast = 1
#3 0x00007fec8cbd6c85 in uxa_check_poly_segment (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nsegInit=1,
pSegInit=0x7fec95265888) at ../../uxa/uxa-unaccel.c:246
screen = <optimized out>
__FUNCTION__ = "uxa_check_poly_segment"
#4 0x00007fec90fbde2e in damagePolySegment (pDrawable=0x7fec95207240, pGC=0x7fec95268310, nSeg=1,
pSeg=<optimized out>) at ../../../miext/damage/damage.c:1052
pGCPriv = 0x7fec952683d8
oldFuncs = 0x7fec9129c540 <damageGCFuncs>
#5 0x00007fec90efa43d in ProcPolySegment (client=0x7fec951d5ab0) at ../../dix/dispatch.c:1745
nsegs = <optimized out>
pGC = 0x7fec95268310
pDraw = 0x7fec95207240
stuff = 0x7fec9526587c
#6 0x00007fec90efde61 in Dispatch () at ../../dix/dispatch.c:428
clientReady = 0x7fec94ca17c0
result = <optimized out>
client = 0x7fec951d5ab0
nready = 0
icheck = 0x7fec912a60f0 <checkForInput>
start_tick = 180
#7 0x00007fec90eecec5 in main (argc=8, argv=0x7fff8ef75858, envp=<optimized out>) at ../../dix/main.c:288
i = <optimized out>
alwaysCheckForInput = {0, 1}