From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chris Faylor To: insight@sources.redhat.com Cc: macgregorsoftware@worldnet.att.net Subject: [macgregorsoftware@worldnet.att.net: [Fwd: Insight problem]] Date: Mon, 13 Nov 2000 08:46:00 -0000 Message-id: <20001113114617.G7424@redhat.com> X-SW-Source: 2000-q4/msg00198.html I'm forwarding your problem to the insight mailing list. You might want to subscribe to this list by sending email to insight-subscribe@sources.redhat.com cgf ----- Forwarded message from "James A. MacGregor III" ----- From: "James A. MacGregor III" To: cgf@redhat.com Subject: [Fwd: Insight problem] Date: Mon, 13 Nov 2000 07:57:13 -0500 Reply-To: jamesm@macraigor.com Organization: MacGregor Software Incorporated Mr Faylor: We built Insight with the cvs version. We are still seeing the problem ie :: - only in power pc builds - insight generates an exception when run without the -nw option - runs fine with the -nw option. is still there. Are we doing something wrong? Jim MacGregor Macraigor Systems LLC From: "Peter Reilley" To: "Jim McGreggor" Subject: Insight problem Date: Sun, 12 Nov 2000 17:31:46 -0500 Running insight results in the following exception. If I run insight --nw everything works fine. Pete. ---------------------------------------------------- This is the Win98 exception report GDB caused an invalid page fault in module CYGTK80.DLL at 0167:6633c554. Registers: EAX=02fff798 CS=0167 EIP=6633c554 EFLGS=00010202 EBX=0527bb28 SS=016f ESP=0f03f4d8 EBP=0f03f4f0 ECX=61083de4 DS=016f ESI=0527bb28 FS=3d9f EDX=05285138 ES=016f EDI=0506ede8 GS=0000 Bytes at CS:EIP: 39 50 08 75 07 c7 40 08 00 00 00 00 39 58 04 75 Stack dump: 05249aa8 0527bb28 0f03f590 6637c07f 05249aa8 0527bb28 0f03f590 6637c0a1 0527bb28 0527bb28 0f03f590 6637c098 0527bb28 05367448 818eece4 6104477f ------------------------------------------------------- Here is the offending routine. The exception occured at: 6633c554. 6633c528 <_TkEventDeadWindow>: 6633c528: 55 push %ebp 6633c529: 89 e5 mov %esp,%ebp 6633c52b: 83 ec 14 sub $0x14,%esp 6633c52e: 53 push %ebx 6633c52f: 8b 5d 08 mov 0x8(%ebp),%ebx 6633c532: 83 bb 9c 00 00 00 00 cmpl $0x0,0x9c(%ebx) 6633c539: 74 4d je 6633c588 <_TkEventDeadWindow+0x60> 6633c53b: 90 nop 6633c53c: 8b 93 9c 00 00 00 mov 0x9c(%ebx),%edx 6633c542: 8b 42 0c mov 0xc(%edx),%eax 6633c545: 89 83 9c 00 00 00 mov %eax,0x9c(%ebx) 6633c54b: a1 d8 3e 38 66 mov 0x66383ed8,%eax 6633c550: 85 c0 test %eax,%eax 6633c552: 74 1f je 6633c573 <_TkEventDeadWindow+0x4b> Offending code: 6633c554: 39 50 08 cmp %edx,0x8(%eax) 6633c557: 75 07 jne 6633c560 <_TkEventDeadWindow+0x38> 6633c559: c7 40 08 00 00 00 00 movl $0x0,0x8(%eax) 6633c560: 39 58 04 cmp %ebx,0x4(%eax) 6633c563: 75 07 jne 6633c56c <_TkEventDeadWindow+0x44> 6633c565: c7 40 04 00 00 00 00 movl $0x0,0x4(%eax) 6633c56c: 8b 40 0c mov 0xc(%eax),%eax 6633c56f: 85 c0 test %eax,%eax 6633c571: 75 e1 jne 6633c554 <_TkEventDeadWindow+0x2c> 6633c573: 83 c4 f4 add $0xfffffff4,%esp 6633c576: 52 push %edx 6633c577: e8 0c 0f 04 00 call 6637d488 <_Tcl_Free> 6633c57c: 83 c4 10 add $0x10,%esp 6633c57f: 83 bb 9c 00 00 00 00 cmpl $0x0,0x9c(%ebx) 6633c586: 75 b4 jne 6633c53c <_TkEventDeadWindow+0x14> 6633c588: 8b 5d e8 mov 0xffffffe8(%ebp),%ebx 6633c58b: 89 ec mov %ebp,%esp 6633c58d: 5d pop %ebp 6633c58e: c3 ret 6633c58f: 90 nop -------------------------------------------------------------- Here is the C code from tkEvent.c If I read my assembly correctly the offending code is marked with >>>> /* *-------------------------------------------------------------- * * TkEventDeadWindow -- * * This procedure is invoked when it is determined that * a window is dead. It cleans up event-related information * about the window. * * Results: * None. * * Side effects: * Various things get cleaned up and recycled. * *-------------------------------------------------------------- */ void TkEventDeadWindow(winPtr) TkWindow *winPtr; /* Information about the window * that is being deleted. */ { register TkEventHandler *handlerPtr; register InProgress *ipPtr; /* * While deleting all the handlers, be careful to check for * Tk_HandleEvent being about to process one of the deleted * handlers. If it is, tell it to quit (all of the handlers * are being deleted). */ while (winPtr->handlerList != NULL) { handlerPtr = winPtr->handlerList; winPtr->handlerList = handlerPtr->nextPtr; for (ipPtr = pendingPtr; ipPtr != NULL; ipPtr = ipPtr->nextPtr) { >>>> if (ipPtr->nextHandler == handlerPtr) { ipPtr->nextHandler = NULL; } if (ipPtr->winPtr == winPtr) { ipPtr->winPtr = None; } } ckfree((char *) handlerPtr); } } ----- End forwarded message -----