View Single Post
Old 08-11-08, 03:24 AM   #23
devsk
Registered User
 
Join Date: Jun 2006
Posts: 46
Default Re: Spawning new session leads to crash

So, I built the xorg-server with debug and after many chvt's, this is what I get in the debugger:

Code:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f642c5896f0 (LWP 9436)]
0x00007f6427ec2a11 in ?? () from /usr/lib64/xorg/modules/drivers//nvidia_drv.so
(gdb) bt
#0  0x00007f6427ec2a11 in ?? () from /usr/lib64/xorg/modules/drivers//nvidia_drv.so
#1  0x0000000000591e83 in damagePolyFillRect (pDrawable=0xb2e710, pGC=0xba9eb0, nRects=1, pRects=0xb4c2ac) at damage.c:1337
#2  0x000000000044edb1 in ProcPolyFillRectangle (client=0x919ad0) at dispatch.c:1795
#3  0x000000000044b382 in Dispatch () at dispatch.c:454
#4  0x0000000000430e54 in main (argc=9, argv=0x7fff345b7208, envp=0x7fff345b7258) at main.c:441
(gdb) frame 1
#1  0x0000000000591e83 in damagePolyFillRect (pDrawable=0xb2e710, pGC=0xba9eb0, nRects=1, pRects=0xb4c2ac) at damage.c:1337
1337    damage.c: No such file or directory.
        in damage.c
(gdb) p *pDrawable
$1 = {type = 0 '\0', class = 1 '\001', depth = 24 '\030', bitsPerPixel = 32 ' ', id = 39846038, x = 717, y = 53, width = 1198, height = 641, pScreen = 0x8dad60,
  serialNumber = 1703112}
(gdb) p *pGC
$2 = {pScreen = 0x8dad60, depth = 24 '\030', alu = 3 '\003', lineWidth = 0, dashOffset = 0, numInDashList = 2, dash = 0x837d28 "\004\004", lineStyle = 0, capStyle = 1,
  joinStyle = 0, fillStyle = 0, fillRule = 0, arcMode = 1, subWindowMode = 0, graphicsExposures = 0, clientClipType = 0, miTranslate = 1, tileIsPixel = 1, fExpose = 1,
  freeCompClip = 0, unused = 0, planemask = 18446744073709551615, fgPixel = 4294922577, bgPixel = 16777215, tile = {pixmap = 0x0, pixel = 0}, stipple = 0x915120,
  patOrg = {x = 0, y = 0}, font = 0x9e38c0, clipOrg = {x = 0, y = 0}, lastWinOrg = {x = 717, y = 53}, clientClip = 0x0, stateChanges = 0, serialNumber = 1703112,
  funcs = 0x7f64280752c0, ops = 0x7f642807b800, devPrivates = 0xba9fd0, pRotatedPixmap = 0x0, pCompositeClip = 0xb2e760}
(gdb) p *pRects
$3 = {x = 218, y = 127, width = 28, height = 14}
(gdb) frame 2
#2  0x000000000044edb1 in ProcPolyFillRectangle (client=0x919ad0) at dispatch.c:1795
1795    dispatch.c: No such file or directory.
        in dispatch.c
(gdb) p *client
$4 = {index = 19, clientAsMask = 39845888, requestBuffer = 0xb4c2a0, osPrivate = 0x91cfa0, swapped = 0, pSwapReplyFunc = 0x46e117 <CopySwap32Write>,
  errorValue = 39846056, sequence = 153259, closeDownMode = 0, clientGone = 0, noClientException = 0, saveSet = 0x0, numSaved = 0, screenPrivate = {0x0, 0x0,
    0x4d000000ff006200, 0x3900000044000000, 0x700000015000000, 0x1000000, 0x0, 0xff73e373ff006200, 0xff83eb83ff59d559, 0xf7a6eda6ff006200, 0xff006200ffbcfabc,
    0x1800000044000000, 0x20000000b000000, 0x0, 0x0, 0xff00620000000000}, requestVector = 0x835e60, req_len = 5, big_requests = 1, priority = 0,
  clientState = ClientStateRunning, devPrivates = 0x15b9750, xkbClientFlags = 32770, mapNotifyMask = 7, newKeyboardNotifyMask = 5, vMajor = 1, vMinor = 0,
  minKC = 8 '\b', maxKC = 255 '', replyBytesRemaining = 0, fontResFunc = 0, smart_priority = 20, smart_start_tick = 11680, smart_stop_tick = 11680,
  smart_check_tick = 11680}
(gdb) p *client->osPrivate
Attempt to dereference a generic pointer.
(gdb) p *client->requestBuffer
Attempt to dereference a generic pointer.
(gdb) p *client->devPrivates
$5 = {key = 0x83d3e8, value = 0x15b9768, next = 0x91ba80}
(gdb) p *client->devPrivates->next
$6 = {key = 0x0, value = 0x91ba98, next = 0x15b9710}
Can anyone make sense out of this? Of course, we don't have any debug info from the closed source binary, so GDB stops there.

We need to fix the crashes, Nvidia! I can provide more debugging info if someone can make a debug version of nvidia_drv.so for 177 beta drivers and attach here.
devsk is offline   Reply With Quote