This is the mail archive of the insight@sources.redhat.com mailing list for the Insight project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: [macgregorsoftware@worldnet.att.net: [Fwd: Insight problem]]


Although IMO Tk should not core dump, it probably did because some
bad argument was passed.  The information below is not very useful
A stack trace could help, but I guess we should start with another 
approach.

Please set the following environment variables:

   GDBTK_DEBUG 2

   GDBTK_DEBUGFILE /dev/tty    (or whatever the console is called)

Then start gdb without the -nw switch (i.e., Insight).

And post the last two pages or so of trace information.

Fernando



> 
> 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 -----

-- 
Fernando Nasser
Red Hat Canada Ltd.                     E-Mail:  fnasser@redhat.com
2323 Yonge Street, Suite #300
Toronto, Ontario   M4P 2C9

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]