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
[email protected]
https://lists.sourceforge.net/lists/listinfo/basket-devel