Breakpoint 3, nv30_screen_destroy (pscreen=0x80776e0) at nv30/nv30_screen.c:310 310 { (gdb) n 313 if (!nouveau_drm_screen_unref(&screen->base)) (gdb) p screen->base.device->fd value has been optimized out (gdb) c Continuing. Breakpoint 2, 0xb7c08b70 in close () from /usr/lib/libc.so.6 (gdb) bt #0 0xb7c08b70 in close () from /usr/lib/libc.so.6 #1 0xb7ad0902 in dri2DestroyScreen (base=0x805f608) at dri2_glx.c:712 #2 0xb7aa9d59 in FreeScreenConfigs (priv=0x805da10, priv=0x805da10) at glxext.c:208 #3 0xb7aa9de2 in glx_display_free (priv=priv@entry=0x805da10) at glxext.c:231 #4 0xb7aa9f33 in __glXCloseDisplay (dpy=0x804e348, codes=0x805da54) at glxext.c:277 #5 0xb7e663e1 in XCloseDisplay () from /usr/lib/libX11.so.6 #6 0x08048d3b in glxtest() () #7 0x08048d85 in main () (gdb) up #1 0xb7ad0902 in dri2DestroyScreen (base=0x805f608) at dri2_glx.c:712 712 close(psc->fd); (gdb) p psc->fd $1 = 4 (gdb) c Continuing. Breakpoint 3, nv30_screen_destroy (pscreen=0x80776e0) at nv30/nv30_screen.c:310 310 { (gdb) n 313 if (!nouveau_drm_screen_unref(&screen->base)) (gdb) p screen->base.device->fd value has been optimized out (gdb) c Continuing. nouveau: kernel rejected pushbuf: Bad file descriptor nouveau: ch0: krec 0 pushes 1 bufs 1 relocs 0 nouveau: ch0: buf 00000000 00000002 00000004 00000004 00000000 nouveau: ch0: psh 00000000 000000012c 0000000140 nouveau: 0x0008fd6c nouveau: 0x00000000 nouveau: 0x00000003 nouveau: 0x00020000 nouveau: 0x00000000 ^C Program received signal SIGINT, Interrupt.