[Psi-Devel] debugging on windows
Norman Rasmussen
norman at rasmussen.co.za
Thu Mar 13 13:42:55 PDT 2008
>From the looks of the stack trace plus some blind debugging, it looks like
Psi crashed when you resized a window.
It was trying to draw a PE_IndicatorArrowUp of size 0, so it looks like no
image was created, so when that image was cached in the QPixmapCache, it
didn't like storing it as a QDetachedPixmap, because the QDetachedPixmap
requires that the image really exists.
*whew* That being said, are you using a custom theme that might be causing
issues? and is this easy to reproduce by resizing any window, any amount, or
do you really have to go all out to make it crash?
btw, Here's the stack trace from that dump:
> QtGuid4.dll!QDetachedPixmap::QDetachedPixmap(const QPixmap &
pix={...}) Line 94 + 0x9 bytes C++
QtGuid4.dll!QPMCache::insert(const QString & key={...}, const QPixmap &
pixmap={...}, int cost=0x00000000) Line 177 + 0x26 bytes C++
QtGuid4.dll!QPixmapCache::insert(const QString & key={...}, const
QPixmap & pm={...}) Line 277 C++
QtGuid4.dll!QWindowsStyle::drawPrimitive(QStyle::PrimitiveElement
pe=PE_IndicatorArrowUp, const QStyleOption * opt=0x00123714, QPainter *
p=0x00126170, const QWidget * w=0x00f748d0) Line 1340 + 0x13 bytes C++
QtGuid4.dll!QWindowsXPStyle::drawPrimitive(QStyle::PrimitiveElement
pe=PE_IndicatorArrowUp, const QStyleOption * option=0x00123714, QPainter *
p=0x00126170, const QWidget * widget=0x00f748d0) Line 1225 C++
QtGuid4.dll!QWindowsStyle::drawControl(QStyle::ControlElement
ce=CE_ScrollBarSubLine, const QStyleOption * opt=0x00124ce8, QPainter *
p=0x00126170, const QWidget * widget=0x00f748d0) Line 2160 C++
QtGuid4.dll!QWindowsXPStyle::drawControl(QStyle::ControlElement
element=CE_ScrollBarSubLine, const QStyleOption * option=0x00124ce8,
QPainter * p=0x00126170, const QWidget * widget=0x00f748d0) Line 1799
C++
QtGuid4.dll!QCommonStyle::drawComplexControl(QStyle::ComplexControl
cc=CC_ScrollBar, const QStyleOptionComplex * opt=0x001260fc, QPainter *
p=0x00126170, const QWidget * widget=0x00f748d0) Line 2471 C++
QtGuid4.dll!QWindowsStyle::drawComplexControl(QStyle::ComplexControl
cc=CC_ScrollBar, const QStyleOptionComplex * opt=0x001260fc, QPainter *
p=0x00126170, const QWidget * widget=0x00f748d0) Line 3069 C++
QtGuid4.dll!QWindowsXPStyle::drawComplexControl(QStyle::ComplexControl
cc=CC_ScrollBar, const QStyleOptionComplex * option=0x001260fc, QPainter *
p=0x00126170, const QWidget * widget=0x00f748d0) Line 2367 C++
QtGuid4.dll!QScrollBar::paintEvent(QPaintEvent * __formal=0x00126780)
Line 521 C++
QtGuid4.dll!QWidget::event(QEvent * event=0x00126780) Line 6262 C++
QtGuid4.dll!QAbstractSlider::event(QEvent * e=0x00126780) Line 835
C++
QtGuid4.dll!QScrollBar::event(QEvent * event=0x00126780) Line 501
C++
QtGuid4.dll!QApplicationPrivate::notify_helper(QObject *
receiver=0x00f748d0, QEvent * e=0x00126780) Line 3558 + 0x11 bytes C++
QtGuid4.dll!QApplication::notify(QObject * receiver=0x00f748d0, QEvent
* e=0x00126780) Line 3499 + 0x10 bytes C++
Psi.exe!PsiApplication::notify(QObject * receiver=0x00f748d0, QEvent *
event=0x00126780) Line 251 C++
QtCored4.dll!QCoreApplication::notifyInternal(QObject *
receiver=0x00f748d0, QEvent * event=0x00126780) Line 533 C++
QtCored4.dll!QCoreApplication::sendSpontaneousEvent(QObject *
receiver=0x00f748d0, QEvent * event=0x00126780) Line 205 + 0x38 bytes
C++
QtGuid4.dll!qt_sendSpontaneousEvent(QObject * receiver=0x00f748d0,
QEvent * event=0x00126780) Line 1199 + 0xe bytes C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1212 + 0xd bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000000, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000003, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000001, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000002, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000003, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000004) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::paintSiblingsRecursive(QPaintDevice *
pdev=0x01472118, const QList<QObject *> & siblings={...}, int
index=0x00000003, const QRegion & rgn={...}, const QPoint & offset={...},
int flags=0x00000004) Line 1116 C++
QtGuid4.dll!QWidgetPrivate::drawWidget(QPaintDevice * pdev=0x01472118,
const QRegion & rgn={...}, const QPoint & offset={...}, int
flags=0x00000005) Line 1248 + 0x2e bytes C++
QtGuid4.dll!QWidgetBackingStore::cleanRegion(const QRegion & rgn={...},
QWidget * widget=0x0145d6d0, bool recursiveCopyToScreen=true) Line 1017
C++
QtGuid4.dll!qt_syncBackingStore(QRegion rgn={...}, QWidget *
widget=0x0145d6d0, bool recursive=false) Line 247 C++
QtGuid4.dll!qt_syncBackingStore(QRegion rgn={...}, QWidget *
widget=0x0145d6d0) Line 253 + 0x1d bytes C++
QtGuid4.dll!QETWidget::translateConfigEvent(const tagMSG & msg={...})
Line 3175 + 0x3e bytes C++
QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00080246, unsigned int
message=0x00000005, unsigned int wParam=0x00000000, long lParam=0x0091008a)
Line 1702 + 0xc bytes C++
user32.dll!_InternalCallWinProc at 20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb7 bytes
user32.dll!_RealDefWindowProcWorker at 20() + 0x1f68 bytes
user32.dll!_RealDefWindowProcW at 16() + 0x27 bytes
user32.dll!_DefWindowProcW at 16() + 0x57 bytes
QtGuid4.dll!QWinInputContext::DefWindowProcW(HWND__ * hwnd=0x00080246,
unsigned int msg=0x00000047, unsigned int wParam=0x00000000, long
lParam=0x0012aa1c) Line 395 + 0x22 bytes C++
QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00080246, unsigned int
message=0x00000047, unsigned int wParam=0x00000000, long lParam=0x0012aa1c)
Line 2162 + 0x1c bytes C++
user32.dll!_InternalCallWinProc at 20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb7 bytes
user32.dll!_DispatchClientMessage at 20() + 0x4d bytes
user32.dll!___fnINLPWINDOWPOS at 4() + 0x25 bytes
ntdll.dll!_KiUserCallbackDispatcher at 12() + 0x13 bytes
user32.dll!_NtUserMessageCall at 28() + 0xc bytes
user32.dll!_RealDefWindowProcW at 16() + 0x27 bytes
user32.dll!_DefWindowProcW at 16() + 0x57 bytes
QtGuid4.dll!QWinInputContext::DefWindowProcW(HWND__ * hwnd=0x00080246,
unsigned int msg=0x00000112, unsigned int wParam=0x0000f008, long
lParam=0x00a5007d) Line 395 + 0x22 bytes C++
QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00080246, unsigned int
message=0x00000112, unsigned int wParam=0x0000f008, long lParam=0x00a5007d)
Line 2162 + 0x1c bytes C++
user32.dll!_InternalCallWinProc at 20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb7 bytes
user32.dll!_DispatchClientMessage at 20() + 0x4d bytes
user32.dll!___fnDWORD at 4() + 0x24 bytes
ntdll.dll!_KiUserCallbackDispatcher at 12() + 0x13 bytes
user32.dll!_NtUserMessageCall at 28() + 0xc bytes
user32.dll!_RealDefWindowProcW at 16() + 0x27 bytes
user32.dll!_DefWindowProcW at 16() + 0x57 bytes
QtGuid4.dll!QWinInputContext::DefWindowProcW(HWND__ * hwnd=0x00080246,
unsigned int msg=0x000000a1, unsigned int wParam=0x00000011, long
lParam=0x00a5007d) Line 395 + 0x22 bytes C++
QtGuid4.dll!QtWndProc(HWND__ * hwnd=0x00080246, unsigned int
message=0x000000a1, unsigned int wParam=0x00000011, long lParam=0x00a5007d)
Line 2162 + 0x1c bytes C++
user32.dll!_InternalCallWinProc at 20() + 0x28 bytes
user32.dll!_UserCallWinProcCheckWow at 32() + 0xb7 bytes
user32.dll!_DispatchMessageWorker at 8() + 0xdc bytes
user32.dll!_DispatchMessageW at 4() + 0xf bytes
QtCored4.dll!QEventDispatcherWin32::processEvents(QFlags<enum
QEventLoop::ProcessEventsFlag> flags={...}) Line 521 + 0x18 bytes C++
QtGuid4.dll!QGuiEventDispatcherWin32::processEvents(QFlags<enum
QEventLoop::ProcessEventsFlag> flags={...}) Line 992 + 0x15 bytes C++
QtCored4.dll!QEventLoop::processEvents(QFlags<enum
QEventLoop::ProcessEventsFlag> flags={...}) Line 143 C++
QtCored4.dll!QEventLoop::exec(QFlags<enum
QEventLoop::ProcessEventsFlag> flags={...}) Line 188 + 0x2d bytes C++
QtCored4.dll!QCoreApplication::exec() Line 761 + 0x15 bytes C++
QtGuid4.dll!QApplication::exec() Line 3056 C++
Psi.exe!main(int argc=0x00000001, char * * argv=0x003f5cb0) Line 356 +
0x6 bytes C++
Psi.exe!WinMain(HINSTANCE__ * instance=0x00400000, HINSTANCE__ *
prevInstance=0x00000000, char * __formal=0x00152363, int
cmdShow=0x00000001) Line 120 + 0x12 bytes C++
Psi.exe!__tmainCRTStartup() Line 589 + 0x35 bytes C
Psi.exe!WinMainCRTStartup() Line 414 C
kernel32.dll!_BaseProcessStart at 4() + 0x23 bytes
On Thu, Mar 13, 2008 at 9:55 PM, Andrey Rahmatullin <wrar at altlinux.ru>
wrote:
> On Thu, Mar 13, 2008 at 09:21:50PM +0200, Norman Rasmussen wrote:
> > In particular the section on 'Using Dr. Watson'. To be able to
> reproduce
> > the stack trace with useful information I will need the minidump file
> (.dmp)
> > that Dr Watson creates.
> Attached.
>
> > Also let me know which build you generated the dumps with as I will have
> to
> > have the exact pdb files installed so that Visual Studio picks them up
> > correctly. (If it's not listed on my web-site then the pdb files are
> already
> > deleted)
> psi-trunk-0.12-rc1-win32.zip
>
> --
> WBR, wRAR (ALT Linux Team)
>
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.4.8 (GNU/Linux)
>
> iEYEARECAAYFAkfZhpYACgkQB4Vf7hFmt5X9NwCZAQrF/hxAiDnWzQaf3g4ckZph
> QscAn2g5H3yfnpvJxTqD8LRsLcB5PKF7
> =9z+y
> -----END PGP SIGNATURE-----
>
> _______________________________________________
> Psi-Devel mailing list
> Psi-Devel at lists.affinix.com
> http://lists.affinix.com/listinfo.cgi/psi-devel-affinix.com
>
>
--
- Norman Rasmussen
- Email: norman at rasmussen.co.za
- Home page: http://norman.rasmussen.co.za/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.affinix.com/pipermail/psi-devel-affinix.com/attachments/20080313/fb0638ca/attachment.htm
More information about the Psi-Devel
mailing list