I finally managed to get debugging symbols. Here's a copy of my gdb
session:
Program received signal SIGSEGV, Segmentation fault.
0x080e3cb3 in cfb16ClippedLineCopy (pDrawable=0x8637418, pGC=0x86960e0, x1=0,
y1=0, x2=0, y2=0, boxp=0x8692ec0, shorten=1) at cfb8lineCO.c:1474
(gdb) bt
#0 0x080e3cb3 in cfb16ClippedLineCopy (pDrawable=0x8637418, pGC=0x86960e0,
x1=0, y1=0, x2=0, y2=0, boxp=0x8692ec0, shorten=1) at cfb8lineCO.c:1474
#1 0x080e3638 in cfb16LineSS1Rect (pDrawable=0x8637418, pGC=0x86960e0, mode=0,
npt=53, pptInit=0x863ace0) at cfb8lineCO.c:1220
#2 0x0806d98d in ProcPolyLine (client=0x86101b0) at dispatch.c:1849
#3 0x08069d6d in Dispatch () at dispatch.c:450
#4 0x080512c7 in main (argc=23, argv=0xbfd2d054, envp=0xbfd2d0b4) at main.c:435
(gdb) x/4i $eip
0x80e3cb3 <cfb16ClippedLineCopy+1626>: mov %ax,(%edx)
(gdb) p/x $edx
$3 = 0xb7525802
(gdb) p addrp
$7 = (PixelType *) 0xb7525802
(gdb) shell cat /proc/31722/maps
08048000-08544000 r-xp 00000000 09:00 1200927 /usr/bin/Xvnc4
08544000-08585000 rw-p 004fb000 09:00 1200927 /usr/bin/Xvnc4
08585000-08a2b000 rw-p 08585000 00:00 0 [heap]
b732e000-b736f000 rw-p b732e000 00:00 0
b7526000-b76a6000 rw-s 00000000 00:08 1045168129 /SYSV00000000 (deleted)
b76a6000-b7827000 rw-p b76a6000 00:00 0
b79a7000-b7caa000 rw-p b79a7000 00:00 0
b7caa000-b7de2000 r-xp 00000000 09:00 1197151 /lib/libc-2.7.so
b7de2000-b7de3000 r--p 00138000 09:00 1197151 /lib/libc-2.7.so
b7de3000-b7de5000 rw-p 00139000 09:00 1197151 /lib/libc-2.7.so
b7de5000-b7de8000 rw-p b7de5000 00:00 0
b7de8000-b7df4000 r-xp 00000000 09:00 1197166 /lib/libgcc_s.so.1
b7df4000-b7df5000 rw-p 0000b000 09:00 1197166 /lib/libgcc_s.so.1
b7df5000-b7df6000 rw-p b7df5000 00:00 0
b7df6000-b7e1a000 r-xp 00000000 09:00 1197170 /lib/libm-2.7.so
b7e1a000-b7e1c000 rw-p 00023000 09:00 1197170 /lib/libm-2.7.so
b7e1c000-b7eff000 r-xp 00000000 09:00 1316616 /usr/lib/libstdc++.so.6.0.10
b7eff000-b7f02000 r--p 000e2000 09:00 1316616 /usr/lib/libstdc++.so.6.0.10
b7f02000-b7f04000 rw-p 000e5000 09:00 1316616 /usr/lib/libstdc++.so.6.0.10
b7f04000-b7f0a000 rw-p b7f04000 00:00 0
b7f0a000-b7f1e000 r-xp 00000000 09:00 1316793 /usr/lib/libz.so.1.2.3.3
b7f1e000-b7f1f000 rw-p 00013000 09:00 1316793 /usr/lib/libz.so.1.2.3.3
b7f37000-b7f3b000 rw-s 00000000 00:08 1045594115 /SYSV00000000 (deleted)
b7f3b000-b7f3d000 rw-p b7f3b000 00:00 0
b7f3d000-b7f3e000 r-xp b7f3d000 00:00 0 [vdso]
b7f3e000-b7f58000 r-xp 00000000 09:00 1197142 /lib/ld-2.7.so
b7f58000-b7f5a000 rw-p 0001a000 09:00 1197142 /lib/ld-2.7.so
bfd19000-bfd2e000 rw-p bfd19000 00:00 0 [stack]
-- vnc4server tries to write to memory which is not mapped at all but
-- slighly (by 2046 bytes) before a mapping that probably is the
-- framebuffer. Observe that (0xb76a6000 - 0xb7526000) = 1024*768*2
(gdb) p *boxp
$5 = {
x1 = 0,
y1 = 0,
x2 = 1024,
y2 = 768
}
(gdb) p addr + (y1 * nwidth) + x1
$8 = (PixelType *) 0xb7526000
-- this is the start address, written to addrp on line 1385
(gdb) p stepx
$9 = 1
(gdb) p stepy
$10 = -1024
-- so line 1437 will actually decrease the value addrp!
(gdb) p *pGC
$27 = {
pScreen = 0x85b0a38,
depth = 16 '\020',
alu = 3 '\003',
lineWidth = 0,
dashOffset = 0,
numInDashList = 2,
dash = 0x8546648 "\004\004",
lineStyle = 0,
capStyle = 1,
joinStyle = 0,
fillStyle = 0,
fillRule = 0,
arcMode = 1,
subWindowMode = 0,
graphicsExposures = 0,
clientClipType = 2,
miTranslate = 1,
tileIsPixel = 1,
fExpose = 1,
freeCompClip = 1,
unused = 95,
planemask = 4294967295,
fgPixel = 0,
bgPixel = 1,
tile = {
pixmap = 0x0,
pixel = 0
},
stipple = 0x8690580,
patOrg = {
x = 220,
y = 233
},
font = 0x85d4578,
clipOrg = {
x = 0,
y = 0
},
lastWinOrg = {
x = 0,
y = 0
},
clientClip = 0x889da58,
stateChanges = 0,
serialNumber = 1511,
funcs = 0x856d6e0,
ops = 0x8548320,
devPrivates = 0x86a5550,
pRotatedPixmap = 0x0,
pCompositeClip = 0x86a5f38
}
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]