This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
[macgregorsoftware@worldnet.att.net: [Fwd: Insight problem]]
- To: insight at sources dot redhat dot com
- Subject: [macgregorsoftware@worldnet.att.net: [Fwd: Insight problem]]
- From: Chris Faylor <cgf at redhat dot com>
- Date: Mon, 13 Nov 2000 11:46:17 -0500
- Cc: macgregorsoftware at worldnet dot att dot net
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" <macgregorsoftware@worldnet.att.net> -----
From: "James A. MacGregor III" <macgregorsoftware@worldnet.att.net>
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" <micrio@mv.com>
To: "Jim McGreggor" <jamesm@macraigor.com>
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 -----