(gdb) bt full #0 0xb7c05c44 in SavageDoAdjustFrame (pScrn=0x8207df8, x=0, y=0, crtc2=0) at ../../src/savage_driver.c:3949 psav = (SavagePtr) 0x8208f80 currentMode = (DisplayModePtr) 0x0 address = 0 top = 0 left = 0 tile_height = 16 tile_size = 2048 #1 0xb7c05a96 in SavageAdjustFrame (scrnIndex=0, x=0, y=0, flags=0) at ../../src/savage_driver.c:3903 pScrn = (ScrnInfoPtr) 0x8207df8 psav = (SavagePtr) 0x8208f80 #2 0xb7c05766 in SavageModeInit (pScrn=0x8207df8, mode=0x820a590) at ../../src/savage_driver.c:3818 hwp = (vgaHWPtr) 0x82088a8 psav = (SavagePtr) 0x8208f80 width = 0 dclk = 25175 i = 0 j = 0 m = 0 n = 0 r = 0 tmp = 0 '\0' new = (SavageRegPtr) 0x8209028 vganew = (vgaRegPtr) 0x8208be4 vgaCRIndex = 980 vgaCRReg = 981 vgaIOBase = 976 refresh = 0 newmode = 0 newrefresh = 0 #3 0xb7c05e6f in SavageSwitchMode (scrnIndex=0, mode=0x820a590, flags=0) at ../../src/savage_driver.c:3993 pScrn = (ScrnInfoPtr) 0x8207df8 psav = (SavagePtr) 0x8208f80 success = 0 #4 0x080f8163 in xf86CursorSwitchMode (index=0, mode=0x820a590, flags=0) at ../../../../hw/xfree86/ramdac/xf86Cursor.c:239 ret = 0 pScreen = (ScreenPtr) 0x0 ScreenPriv = (xf86CursorScreenPtr) 0x82230d0 #5 0x080ca773 in CMapSwitchMode (index=0, mode=0x820a590, flags=0) at ../../../../hw/xfree86/common/xf86cmap.c:484 No locals. #6 0x080bf47e in xf86SwitchMode (pScreen=0x820ac30, mode=0x820a590) at ../../../../hw/xfree86/common/xf86Cursor.c:236 pScr = (ScrnInfoPtr) 0x8207df8 pCursorScreen = (ScreenPtr) 0x820ac30 Switched = 1 px = py = #7 0x080c7c8d in VidModeSwitchMode (scrnIndex=0, mode=0x820a590) at ../../../../hw/xfree86/common/xf86VidMode.c:372 pScrn = (ScrnInfoPtr) 0x8207df8 pTmpMode = (DisplayModePtr) 0x820a3a0 retval = 136347128 #8 0xb7c9fc4a in ProcXF86VidModeSwitchToMode (client=0x84728a8) at ../../../../../hw/xfree86/dixmods/extmod/xf86vmode.c:1255 stuff = (xXF86VidModeSwitchToModeReq *) 0xbf99e1a0 newstuff = {reqType = 120 'x', xf86vidmodeReqType = 141 '\215', length = 9, screen = 0, dotclock = 25175, hdisplay = 640, hsyncstart = 656, hsyncend = 752, htotal = 800, hskew = 0, vdisplay = 480, vsyncstart = 490, vsyncend = 492, vtotal = 525, pad1 = 47051, flags = 10, reserved1 = 138881192, reserved2 = 3214533096, reserved3 = 3083474372, privsize = 0} mode = (pointer) 0x820a590 len = dotClock = 25175 ver = #9 0x0814bbce in XaceCatchExtProc (client=0x84728a8) at ../../Xext/xace.c:299 major = 135 ext = #10 0x08088cbf in Dispatch () at ../../dix/dispatch.c:457 result = client = (ClientPtr) 0x84728a8 nready = 0 start_tick = 6180 #11 0x08070e05 in main (argc=11, argv=0xbf99e744, envp=Cannot access memory at address 0x8 ) at ../../dix/main.c:477 pScreen = i = error = -1080432780 xauthfile = alwaysCheckForInput = {0, 1} (gdb) list 3944 * because we align the viewport to the width and height of one tile 3945 * we should update the locate of frame 3946 */ 3947 pScrn->frameX0 = left; 3948 pScrn->frameY0 = top; 3949 pScrn->frameX1 = left + currentMode->HDisplay - 1; 3950 pScrn->frameY1 = top + currentMode->VDisplay - 1; 3951 3952 if (psav->Chipset == S3_SAVAGE_MX) { 3953 if (!crtc2) {