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