Window Mouse crash.

William Love (love@bnl.gov)
Thu, 25 Feb 1999 14:12:31 -0500


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)