Re: Window Mouse crash.

From: Rene Brun (Rene.Brun@cern.ch)
Date: Mon Mar 01 1999 - 10:40:06 MET


Hi Bill,
You do not report which version you are using. My guess is that you
use the development version 2.21/04. A protection was introduced
in 2.21/05 in TCanvas::EnterLeave in case you move the mouse in a pad
that was previously reset.
In case you use already 2.21/05 or later, please send a small macro
featuring the problem.

Rene Brun


William Love wrote:
> 
>   Fons
>    Valery suggested you'd see where this problem is in a moment.
>  I open my own canvas and plot an event (polylines and polymarkers
>  and a small pad with text).  If, when I have returned to the root
>  prompt, I move the mouse over this canvas I get a Bus error,
>  apparently because EnterLeave is called with a prevSelObj which
>  is non-zero but is not a legitimate object.
> 
>                                                 Bill
> 
>  Track #36 33 hits
> TPCtest   : Real Time =  20.65 seconds Cpu Time =   9.00 seconds
> NULL
> root [1] signal BUS (invalid address alignment) in TCanvas::EnterLeave at
> line 638 in file "GPAD_Canvas.cxx"
>   638         prevSelObj->ExecuteEvent(kMouseLeave, 0, 0);
> (dbx) where
> =>[1] TCanvas::EnterLeave(this = 0x29719d8, prevSelPad = 0x8000b0,
> prevSelObj = 0x1e0011), line 638 in "GPAD_Canvas.cxx"
>   [2] TCanvas::HandleInput(this = 0x29719d8, event = kMouseMotion, px = 549,
> py = 571), line 791 in "GPAD_Canvas.cxx"
>   [3] TRootCanvas::HandleContainerMotion(this = 0x2971bc0, event =
> 0xefffe51c), line 947 in "GUI_RootCanvas.cxx"
>   [4] TRootContainer::HandleMotion(this = 0x2975bc0, ev = 0xefffe51c), line
> 181 in "GUI_RootCanvas.cxx"
>   [5] TGFrame::HandleEvent(this = 0x2975bc0, event = 0xefffe51c), line 310
> in "GUI_GFrame.cxx"
>   [6] TGClient::HandleEvent(this = 0x13c2000, event = 0xefffe51c), line 826
> in "GUI_GClient.cxx"
>   [7] TGClient::ProcessOneEvent(this = 0x13c2000), line 728 in
> "GUI_GClient.cxx"
>   [8] TGClient::HandleInput(this = 0x13c2000), line 752 in "GUI_GClient.cxx"
>   [9] TGInputHandler::Notify(this = 0x10d30b8), line 261 in
> "GUI_GClient.cxx"
>   [10] TUnixSystem::DispatchOneEvent(this = 0xf7aa10, pendingOnly = '\0'),
> line 434 in "UNIX_UnixSystem.cxx"
>   [11] TSystem::InnerLoop(this = 0xf7aa10), line 257 in "BASE_System.cxx"
>   [12] TSystem::Run(this = 0xf7aa10), line 235 in "BASE_System.cxx"
>   [13] TApplication::Run(this = 0x13c1f38, retrn = '\0'), line 609 in
> "BASE_Application.cxx"
>   [14] TRint::Run(this = 0x13c1f38, retrn = '\0'), line 237 in
> "RINT_Rint.cxx"
>   [15] main(argc = 1, argv = 0xefffeb6c), line 63 in "MAIN_rmain.cxx"
> (dbx) p prevSelObj
> prevSelObj = 0x1e0011
> (dbx) l
>   638         prevSelObj->ExecuteEvent(kMouseLeave, 0, 0);
>   639      }
>   640
>   641      gPad = fSelectedPad;
>   642
>   643      if (fSelected)
>   644         fSelected->ExecuteEvent(kMouseEnter, 0, 0);
>   645
>   646      gPad = padsav;
>   647   }
> (dbx) p gPad
> gPad = 0x8000b0
> (dbx) p gPad->GetName()
> dbx: fetch at 0xa0 failed -- I/O error
> dbx: cannot access address 0xa0 looking up virtual function
> (dbx) l 630,650
>   630      // selected object does not change.
>   631
>   632      if (prevSelObj == fSelected) return;
>   633
>   634      TPad *padsav = (TPad *)gPad;
>   635
>   636      if (prevSelObj) {
>   637         gPad = prevSelPad;
>   638         prevSelObj->ExecuteEvent(kMouseLeave, 0, 0);
>   639      }
>   640
>   641      gPad = fSelectedPad;
>   642
>   643      if (fSelected)
>   644         fSelected->ExecuteEvent(kMouseEnter, 0, 0);
>   645
>   646      gPad = padsav;
>   647   }
>   648
>   649
> //__________________________________________________________________________
> ____
>   650   void TCanvas::ExecuteEvent(Int_t event, Int_t px, Int_t py)
> (dbx) p padsav
> padsav = 0x29719d8
> (dbx) p padsav->GetName()
> padsav->GetName() = 0x2973aac "m_TreeD"
> (dbx) p fSelected
> fSelected = 0x29719d8
> (dbx) p fSelected->GetName()
> fSelected->GetName() = 0x2973aac "m_TreeD"
> (dbx)



This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:29 MET