On Thursday, May 29, 2014 10:19 CEST, Matthieu Herrb <mhe...@gmail.com> wrote: > On 29/5/14 9:09 , Sebastian Reitenbach wrote: > > Hi, > > > > yesterday I updated my desktop from a 5.2 or 5.3, to a current snapshot, > > now to find > > the X server dying on me. See Xorg.0.log, xdm.log and dmesg below. > > > > So I went back, installed a 5.5 release, where starting X just worked. > > > > Afterward again, back to the snapshot. > > > > I built, xenocara with debug symbols, following instructions > > in the README, giving me the following backtrace: > > > > (gdb) bt > > #0 0x0000133e268f0fea in kill () at <stdin>:2 > > #1 0x0000133e26953239 in abort () at /usr/src/lib/libc/stdlib/abort.c:53 > > #2 0x0000133c21c42a6b in OsAbort () at > > /home/xenocara/xserver/os/utils.c:1372 > > #3 0x0000133c21ab802c in ddxGiveUp (error=EXIT_ERR_ABORT) at > > /home/xenocara/xserver/hw/xfree86/common/xf86Init.c:1078 > > #4 0x0000133c21ab8155 in AbortDDX (error=EXIT_ERR_ABORT) at > > /home/xenocara/xserver/hw/xfree86/common/xf86Init.c:1122 > > #5 0x0000133c21c4c4d4 in AbortServer () at > > /home/xenocara/xserver/os/log.c:770 > > #6 0x0000133c21c4ca9f in FatalError (f=0x133c21d7f5c8 "Caught signal %d > > (%s). Server aborting\n") > > at /home/xenocara/xserver/os/log.c:911 > > #7 0x0000133c21c3fc46 in OsSigHandler (signo=11, sip=0x7f7ffffbea30, > > unused=0x7f7ffffbe950) > > at /home/xenocara/xserver/os/osinit.c:147 > > #8 <signal handler called> > > #9 0x0000133e2ede2ee2 in ?? () > > #10 0x0000133e2f806952 in _dl_bind (object=0x7f7ffffbee30, index=Variable > > "index" is not available. > > ) at /usr/src/libexec/ld.so/amd64/rtld_machine.c:404 > > #11 0x0000133e2f802811 in _dl_bind_start () at > > /usr/src/libexec/ld.so/amd64/ldasm.S:143 > > #12 0x0000000100000160 in ?? () > > #13 0x0000133e00004000 in ?? () > > #14 0x0000000000000ff0 in ?? () > > #15 0x0000133e3188b800 in ?? () > > #16 0x00000000259d54a0 in ?? () > > #17 0x0000000000000000 in ?? () > > Current language: auto; currently asm > > > > > > Due to the xdm.log and seen the GLX extension being loaded as the last > > thing before the segfault, I changed the xorg.conf, adding: > > > > Section "Module" > > Disable "glx" > > EndSection > > > > on a restart of xdm, the x server again segfaulted, but without the line > > about loading GLX extension. > > > > When I use the vesa driver instead of the nv driver, my X starts up, but > > with lousy resolution :( > > > > any hint what I should try next? > > > > Can you disable xdm, run the failing server and capture stdout and > stderr. The fact that the backtrace goes through dl_* stuff seem to > indicate a failure while loading a shared object. ld.so writes its > errors to stderr and this doesn't get captured in Xorg.0.log > > There may be something intesting to read here. > > Otherwise build the xf86-video-nv with debugging symbols too and get a > backtrace, if possible by running Xorg directly under gdb, rather than > from a core file. From a remote login run sudo gdb Xorg and then 'r' ...
OK, running in gdb, it stopped here: Program received signal SIGSEGV, Segmentation fault. 0x000003bc18f1feea in NVPreInit (pScrn=0x3bc16035800, flags=0) at /home/xenocara/driver/xf86-video-nv/src/nv_driver.c:1929 1929 Mode->type = M_T_DRIVER; (gdb) list 1924 /* If DFP, add a modeline corresponding to its panel size */ 1925 if (pNv->FlatPanel && !pNv->Television && pNv->fpWidth && pNv->fpHeight) { 1926 DisplayModePtr Mode; 1927 1928 Mode = xf86CVTMode(pNv->fpWidth, pNv->fpHeight, 60.00, TRUE, FALSE); 1929 Mode->type = M_T_DRIVER; 1930 pScrn->monitor->Modes = NVModesAdd(pScrn->monitor->Modes, Mode); 1931 1932 if (!config_mon_rates) { 1933 if (!Mode->HSync) (gdb) bt #0 0x000003bc18f1feea in NVPreInit (pScrn=0x3bc16035800, flags=0) at /home/xenocara/driver/xf86-video-nv/src/nv_driver.c:1929 #1 0x000003ba112b6991 in InitOutput (pScreenInfo=0x3ba118e0660, argc=1, argv=0x7f7ffffde6e8) at /home/xenocara/xserver/hw/xfree86/common/xf86Init.c:597 #2 0x000003ba112603da in dix_main (argc=1, argv=0x7f7ffffde6e8, envp=0x7f7ffffde6f8) at /home/xenocara/xserver/dix/main.c:200 #3 0x000003ba112414e7 in main (argc=1, argv=0x7f7ffffde6e8, envp=0x7f7ffffde6f8) at /home/xenocara/xserver/dix/stubmain.c:34 after setting a breakpoint on xf86CVTMode, I stepped through it, and at the end, Mode was: (gdb) 295 return Mode; (gdb) print Mode $3 = (DisplayModeRec *) 0x3bc16033800 (gdb) print *Mode $4 = {prev = 0x0, next = 0x0, name = 0x3bc12282ac0 "1920x1200", status = MODE_OK, type = 0, Clock = 154000, HDisplay = 1920, HSyncStart = 1968, HSyncEnd = 2000, HTotal = 2080, HSkew = 0, VDisplay = 1200, VSyncStart = 1203, VSyncEnd = 1209, VTotal = 1235, VScan = 0, Flags = 9, ClockIndex = 0, SynthClock = 0, CrtcHDisplay = 0, CrtcHBlankStart = 0, CrtcHSyncStart = 0, CrtcHSyncEnd = 0, CrtcHBlankEnd = 0, CrtcHTotal = 0, CrtcHSkew = 0, CrtcVDisplay = 0, CrtcVBlankStart = 0, CrtcVSyncStart = 0, CrtcVSyncEnd = 0, CrtcVBlankEnd = 0, CrtcVTotal = 0, CrtcHAdjusted = 0, CrtcVAdjusted = 0, PrivSize = 0, Private = 0x0, PrivFlags = 0, HSync = 74.0384598, VRefresh = 59.9501724} (gdb) (gdb) n 296 } (gdb) NVPreInit (pScrn=0x3bc16035800, flags=0) at /home/xenocara/driver/xf86-video-nv/src/nv_driver.c:1929 1929 Mode->type = M_T_DRIVER; (gdb) print Mode $5 = 0x16033800 (gdb) print *Mode Cannot access memory at address 0x16033800 (gdb) grepping through the drivers, I found a similar initialization of DisplayModePtr in xf86-video-savage/src/savage_driver.c in SavageAddPanelMode but there it states above: /* borrowed from nv */ So maybe this driver suffers the same problem? Sebastian > > > -- > > Matthieu Herrb