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