On 12/16/05, Ola Lundqvist <[EMAIL PROTECTED]> wrote: > I have nothing to test on so I can hardly make a working patch > but if you could create a patch for me, that would help a lot!
I have no hope of making Xvnc work. It's written as old K&R C coding style, lots of warning when compiled with -Wall. No automake, tons of ifdef, auto-rewriten Makefiles... Just adding -Wall -g to build was painfull. I corrected all includes about functions returning pointers, there are other errors. If I patch code until I have a working binary for my needs; other peoples will have a lot of troubles with differents fonts, bpp, geometry or things like that, triggering bugs that I didn't. Also any patch I will write can broke non-amd64, non-linux, non-debian, non-sarge build because I don't know who is it supposed to be build. I think you should update this code to a more recent and 64bits aware version; this code will not work unless lot and lot of work; and I don't think it worth it. I'm on a step where code jump to short, and I don't understand why. It is supposed inside InitKbdFeedbackClassDeviceStruct() to call NoopDDA() at 0x427b2d and it goes to 0x0000000000427b26 (gdb) break devices.c:666 Breakpoint 1 at 0x41b86f: file devices.c, line 666. (gdb) run :6 Starting program: /home/seb/build/vnc-3.3.7/Xvnc/programs/Xserver/Xvnc :6 17/12/05 10:15:28 Xvnc version 3.3.7 - built Dec 13 2005 16:44:32 17/12/05 10:15:28 Copyright (C) 2002-2003 RealVNC Ltd. 17/12/05 10:15:28 Copyright (C) 1994-2000 AT&T Laboratories Cambridge. 17/12/05 10:15:28 All Rights Reserved. 17/12/05 10:15:28 See http://www.realvnc.com for information on VNC 17/12/05 10:15:28 Desktop name 'x11' (ramoth:6) 17/12/05 10:15:28 Protocol version supported 3.3 17/12/05 10:15:28 Listening for VNC connections on TCP port 5906 Breakpoint 1, InitKbdFeedbackClassDeviceStruct (dev=0x719680, bellProc=0x4b5e9e <rfbSendBell>, controlProc=0x427b2d <NoopDDA>) at devices.c:666 666 if (!feedc) (gdb) s 668 feedc->BellProc = bellProc; (gdb) s 669 feedc->CtrlProc = controlProc; (gdb) s 673 feedc->ctrl = defaultKeyboardControl; (gdb) s 674 feedc->ctrl.id = 0; (gdb) s 675 if ((feedc->next = dev->kbdfeed) != 0) (gdb) s 677 dev->kbdfeed = feedc; (gdb) s 683 (*dev->kbdfeed->CtrlProc)(dev,&dev->kbdfeed->ctrl); (gdb) print *feedc $1 = {BellProc = 0x4b5e9e <rfbSendBell>, CtrlProc = 0x427b2d <NoopDDA>, ctrl = {click = 0, bell = 50, bell_pitch = 400, bell_duration = 100, autoRepeat = 1, autoRepeats = '\0' <repeats 31 times>, leds = 0, id = 0 '\0'}, next = 0x0} (gdb) print dev $2 = 0x719680 (gdb) print *dev $3 = {public = {devicePrivate = 0x0, processInputProc = 0x42c847 <ProcessKeyboardEvent>, realInputProc = 0x42c847 <ProcessKeyboardEvent>, enqueueInputProc = 0x4293de <EnqueueEvent>, on = 0}, next = 0x0, grabTime = {months = 0, milliseconds = 1134810928573}, startup = 1, deviceProc = 0x4a1c54 <rfbKeybdProc>, inited = 0, grab = 0x0, sync = {frozen = 0, state = 0, other = 0x0, event = 0x0, evcount = 0}, type = 0, name = 0x719960 "keyboard", id = 0 '\0', activatingKey = 0 '\0', fromPassiveGrab = 0, activeGrab = {next = 0x0, resource = 0, device = 0x0, window = 0x0, ownerEvents = 0, keyboardMode = 0, pointerMode = 0, coreGrab = 0, coreMods = 0, type = 0 '\0', modifiersDetail = {exact = 0, pMask = 0x0}, modifierDevice = 0x0, detail = {exact = 0, pMask = 0x0}, confineTo = 0x0, cursor = 0x0, eventMask = 0}, ActivateGrab = 0x429e66 <ActivateKeyboardGrab>, DeactivateGrab = 0x42a079 <DeactivateKeyboardGrab>, key = 0x71ab90, valuator = 0x0, button = 0x0, focus = 0x71bcc0, proximity = 0x0, kbdfeed = 0x71bd00, ptrfeed = 0x0, intfeed = 0x0, stringfeed = 0x0, bell = 0x0, leds = 0x0} (gdb) print &dev->kbdfeed->ctrl $4 = (KeybdCtrl *) 0x71bd10 (gdb) print dev->kbdfeed->ctrl $5 = {click = 0, bell = 50, bell_pitch = 400, bell_duration = 100, autoRepeat = 1, autoRepeats = '\0' <repeats 31 times>, leds = 0, id = 0 '\0'} (gdb) print dev->kbdfeed->CtrlProc $6 = 0x427b2d <NoopDDA> (gdb) print *dev->kbdfeed->CtrlProc $7 = {void (DeviceIntPtr, KeybdCtrl *)} 0x427b2d <NoopDDA> (gdb) s Program received signal SIGSEGV, Segmentation fault. 0x0000000000427957 in AlterSaveSetForClient (client=0x427aff, pWin=0x60, mode=1) at dixutils.c:343 343 while ((j < numnow) && (pTmp[j] != (pointer)pWin)) (gdb) bt #0 0x0000000000427957 in AlterSaveSetForClient (client=0x427aff, pWin=0x60, mode=1) at dixutils.c:343 #1 0x0000000000427b26 in DeleteWindowFromAnySaveSet (pWin=0x60) at dixutils.c:396 #2 0x000000000041b98b in InitKbdFeedbackClassDeviceStruct (dev=0x719680, bellProc=0x4b5e9e <rfbSendBell>, controlProc=0x427b2d <NoopDDA>) at devices.c:683 #3 0x000000000041bf6e in InitKeyboardDeviceStruct (device=0x719680, pKeySyms=0x7fbfffef20, pModifiers=0x7fbfffee20 "", bellProc=0x4b5e9e <rfbSendBell>, controlProc=0x427b2d <NoopDDA>) at devices.c:867 #4 0x00000000004a1cec in rfbKeybdProc (pDevice=0x719680, onoff=0) at init.c:606 #5 0x000000000041a83c in InitAndStartDevices () at devices.c:171 #6 0x0000000000403f61 in main (argc=2, argv=0x7fbffff0b8) at main.c:376 -- Seb, autocuiseur