[SOLVED] Crash when clicking on authors button in about dialog on MacOSX.
-
When I start the KDE application kmymoney4-devel (using QT 4.7.3), then go to Preferences/Plugin, select the info button of one of the plugins (e.g. libofx) and then click the authors button in the upcoming about dialog the application crashes.
The same happens in the applications about dialog as well, as I noticed later.
The "original issue at MacPorts":http://trac.macports.org/ticket/28410 I am referring to here has debug logs.
There one can see that the culprit seems to be containerWidget():
@
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_INVALID_ADDRESS at address: 0x0000000000000008
0x000000010499ba80 in containerWidget ()
(gdb) bt f
#0 0x000000010499ba80 in containerWidget ()
No symbol table info available.
#1 0x00000001049b180d in QStyleSheetStyle::drawPrimitive ()
No symbol table info available.
#2 0x0000000101d93ef3 in KDEPrivate::KAboutApplicationPersonListDelegate::paint ()
No symbol table info available.
#3 0x0000000104baf6c8 in QListView::paintEvent ()
@To get more info I certainly would need to have QT in its debug variant installed, so that I could dive into said containerWidget()...
But I hope that someone might have a clue on this list as to what might cause this on MacOSX. It doesn't happen on Linux, that I know for sure. :-)
-
Well, the crash happens in qstylesheetstyle.cpp line 4252:
@case PE_Widget:
if (!rule.hasDrawable()) {
QWidget *container = containerWidget(w);
if (autoFillDisabledWidgets->contains(container)
@The debugger shows this as the crash position:
@
0x0000000103823b85 <+4117> mov %r14,%rdi
0x0000000103823b88 <+4120> callq 0x10380dd90 <_ZL15containerWidgetPK7QWidget>
-> 0x0000000103823b8d <+4125> mov %rax,-0x578(%rbp)
@
(The arrow marks the position where the program crashes with "EXC_BAD_ACCESS"!)Too bad that - for some reason - I can't get the debugger to accept my QT4 debug library. It runs fine through KMyMoney's code line by line, but cannot step into QT4 code. :-(
That's why I can't debug the values of the variables so easily - well, at least my knowledge of assembler isn't good enough to make the link to the original C++ code. :-/
-
I verified with a minimal KDE app that the crash doesn't occur on OpenSuSE 11.2 Linux but happens on Mac OS X if more than the standard about dialog info is being used.
See "issue 1 here":https://bitbucket.org/mkae/kde-tests/issue/1/aboutboxcrash-only-on-mac-os-x
Code is available here: https://bitbucket.org/mkae/kde-tests/downloads
-
Unfortunately it is impossible to debug the above code using
@
$ DYLD_IMAGE_SUFFIX=_debug gdb
@
on MacOSX, since the app will stop with errors like these:
@
On Mac OS X, you might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
QWidget: Must construct a QApplication before a QPaintDeviceProgram received signal SIGABRT, Aborted.
0x000000010128ada2 in __kill ()
(gdb)
@ -
As discussed "here ":https://bitbucket.org/mkae/kde-tests/issue/1/aboutboxcrash-only-on-mac-os-x the crashing about dialog is probably not a QT issue, but rather a KDE bug. I'll go to the KDE-DEVELOP mailing list with this.