On Thursday 25 February 2010 23:10:17 Dr. Robert Marmorstein wrote: > Hmm. Strange bug. > > I'm unable to duplicate this in the way you described, but there is > definitely something wrong. Valgrind indicates a problem in kdelibs, but > it may just be that we're using that class incorrectly. I'll look into it > some more when I have more time. I need to look at the Undo/Redo stuff, as > well. > > Nicholas, could you open a bug report and attach your backtrace? > > I wonder if we need to check whether m_passivePopup is non-NULL before we > delete it? > > It would help if you could run basket under gdb and set a break point at > line 2313 of bnpview.cpp. > > Then let me know what the following variables are set to (they are > pointers, but if you give me the addresses in hex I can get a pretty good > guess at whether they are NULL, point to something deleted, etc): > > m_passivePopup > Global::systemTray
Robert, if I set "break bnpview.cpp:2313", basket segfaults before hitting the breakpoint. I set "break bnpview.cpp.2306". Hopefully the following gbd session will help you. (gdb) cont Continuing. basket(14740) ImageContent::finishLazyLoad: FAILED TO LOAD ImageContent: "/home/nsushkin/.kde/share/apps/basket/baskets/basket10/note1.png" [Switching to Thread 0xb58f6960 (LWP 14740)] Breakpoint 2, BNPView::showPassiveDroppedDelayed (this=0x80eef30) at /home/nsushkin/download/basket/atomopawn-basket-3802d49/src/bnpview.cpp:2306 2306 void BNPView::showPassiveDroppedDelayed() (gdb) info break Num Type Disp Enb Address What 2 breakpoint keep y 0xb7c48000 in BNPView::showPassiveDroppedDelayed() at /home/nsushkin/download/basket/atomopawn-basket-3802d49/src/bnpview.cpp:2306 breakpoint already hit 1 time 3 breakpoint keep y 0xb7c48290 in BNPView::showPassiveDroppedDelayed() at /home/nsushkin/download/basket/atomopawn-basket-3802d49/src/bnpview.cpp:2311 (gdb) next 2308 if (isMainWindowActive() || m_passiveDroppedSelection == 0) (gdb) n Breakpoint 3, BNPView::showPassiveDroppedDelayed (this=0x80eef30) at /home/nsushkin/download/basket/atomopawn-basket-3802d49/src/bnpview.cpp:2311 2311 QString title = m_passiveDroppedTitle; (gdb) n 2313 delete m_passivePopup; // Delete previous one (if exists): it will then hide it (only one at a time) (gdb) n 2314 m_passivePopup = new KPassivePopup(Settings::useSystray() ? (QWidget*)Global::systemTray : this); (gdb) print m_passivePopup $4 = (struct KPassivePopup *) 0x0 (gdb) print Global::systemTray $5 = (SystemTray *) 0x8240eb0 (gdb) step Settings::useSystray () at /home/nsushkin/download/basket/atomopawn-basket-3802d49/src/settings.h:276 276 static inline bool useSystray() { (gdb) step 278 } (gdb) step QFlags (this=0xbfca36e0) at /usr/lib/qt/include/QtCore/qglobal.h:1997 1997 inline QFlags(Zero = 0) : i(0) {} (gdb) step Program received signal SIGSEGV, Segmentation fault. 0xb642b4e0 in QWidget::effectiveWinId () from /usr/lib/libQtGui.so.4 -- Nick ------------------------------------------------------------------------------ Download Intel® Parallel Studio Eval Try the new software tools for yourself. Speed compiling, find bugs proactively, and fine-tune applications for parallel performance. See why Intel Parallel Studio got high marks during beta. http://p.sf.net/sfu/intel-sw-dev _______________________________________________ Basket-devel mailing list Basket-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/basket-devel