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

Reply via email to