| Summary: | kmymoney2 crashes at startup | ||
|---|---|---|---|
| Product: | Gentoo Linux | Reporter: | Patrick ALLAERT <patrickallaert> |
| Component: | [OLD] KDE | Assignee: | Gentoo KDE team <kde> |
| Status: | RESOLVED FIXED | ||
| Severity: | blocker | ||
| Priority: | High | ||
| Version: | 2006.0 | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Package list: | Runtime testing required: | --- | |
| Attachments: | strace output | ||
|
Description
Patrick ALLAERT
2006-05-08 05:04:52 UTC
(no debugging symbols found) Using host libthread_db library "/lib/tls/libthread_db.so.1". (no debugging symbols found) `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. (no debugging symbols found) ... (no debugging symbols found) [Thread debugging using libthread_db enabled] [New Thread -1208920384 (LWP 12181)] 0xffffe410 in __kernel_vsyscall () #0 0xffffe410 in __kernel_vsyscall () #1 0x48af39a0 in nanosleep () from /lib/tls/libc.so.6 #2 0x48af37d6 in sleep () from /lib/tls/libc.so.6 #3 0x4dabbc9b in KCrash::startDrKonqi () from /usr/kde/3.5/lib/libkdecore.so.4 #4 0xbf9af3dc in ?? () #5 0x00000003 in ?? () #6 0x00000000 in ?? () Created attachment 86420 [details]
strace output
launching kmymoney with:
$ strace kmymoney 2> strace_output
does not crash immediately! But if I click on the "New" icon then it crashes! strace output in attachment
Here's a guide on how to get a good backtrace: http://www.gentoo.org/proj/en/qa/backtraces.xml (In reply to comment #3) > Here's a guide on how to get a good backtrace: > > http://www.gentoo.org/proj/en/qa/backtraces.xml I re-emerged kmymoney (not the dependencies) with -ggdb and without binaries stripping, below is the backtrace shown in drkonqui, but don't know if it is sufficient. Note that now, kmymoney does not crash immediately, but only when I click on the 'New' button, as I ran it with strace as explained in comment #2. Using host libthread_db library "/lib/tls/libthread_db.so.1". `system-supplied DSO at 0xffffe000' has disappeared; keeping its symbols. [Thread debugging using libthread_db enabled] [New Thread -1208166720 (LWP 16138)] 0xffffe410 in __kernel_vsyscall () #0 0xffffe410 in __kernel_vsyscall () #1 0x48af39a0 in nanosleep () from /lib/tls/libc.so.6 #2 0x48af37d6 in sleep () from /lib/tls/libc.so.6 #3 0x4dabbc9b in KCrash::startDrKonqi () from /usr/kde/3.5/lib/libkdecore.so.4 #4 0x088cf8e8 in ?? () #5 0xbffefd04 in ?? () #6 0x4d510373 in qt_read_dib () from /usr/qt/3/lib/libqt-mt.so.3 This is maybe interesting, here is the output of 'kmymoney --help', look at the last lines: ======================================%<====================================== Usage: kmymoney [Qt-options] [KDE-options] [options] [File] KMyMoney, the Personal Finance Manager for KDE. Please consider contributing to this project with code and/or suggestions. Generic options: --help Show help about options --help-qt Show Qt specific options --help-kde Show KDE specific options --help-all Show all options --author Show author information -v, --version Show version information --license Show license information -- End of options Options: --lang <lang-code> language to be used --trace turn on program traces -n don't open last used file Arguments: File file to open *** glibc detected *** malloc(): memory corruption (fast): 0x08617527 *** Aborted ======================================%<====================================== That is interesting. You may get a slightly nicer backtrace if you were to emerge gdb, and run kmymoney2 in gdb: gdb kmymoney2 run (cause it to crash) bt (In reply to comment #6) > That is interesting. > > You may get a slightly nicer backtrace if you were to emerge gdb, and run > kmymoney2 in gdb: > > gdb kmymoney2 > run > (cause it to crash) > bt Here is the result: ======================================%<====================================== (gdb) run Starting program: /usr/bin/kmymoney [Thread debugging using libthread_db enabled] [New Thread -1209436480 (LWP 8376)] terminate called after throwing an instance of 'MyMoneyException*' Program received signal SIGABRT, Aborted. [Switching to Thread -1209436480 (LWP 8376)] 0xffffe410 in __kernel_vsyscall () (gdb) bt #0 0xffffe410 in __kernel_vsyscall () #1 0x48a94d3d in raise () from /lib/tls/libc.so.6 #2 0x48a96353 in abort () from /lib/tls/libc.so.6 #3 0x4d283d57 in __gnu_cxx::__verbose_terminate_handler () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6 #4 0x4d281b91 in __cxa_call_unexpected () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6 #5 0x4d281bc6 in std::terminate () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6 #6 0x4d281d19 in __cxa_throw () from /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6 #7 0x082c3c4f in MyMoneySeqAccessMgr::account (this=0x836aac8, id=<incomplete type>) at mymoneyseqaccessmgr.cpp:140 #8 0xbf93ee94 in ?? () #9 0xbf93f130 in ?? () #10 0xb7f22878 in ?? () from /usr/lib/libkmm_mymoney.so.0 #11 0xbf93ee94 in ?? () #12 0xbf93f0d0 in ?? () #13 0x0836aac8 in vtable for MyMoneySeqAccessMgr () #14 0xb7edefaf in MyMoneyFile::account (this=0x8718728, id=@0x8184063) at mymoneyfile.cpp:304 #15 0x08184063 in KLedgerView::refreshView (this=0x88348a8, transactionFormVisible=148) at kledgerview.cpp:415 #16 0x088348a8 in ?? () #17 0x00000001 in ?? () #18 0xbf93f240 in ?? () #19 0x08171d58 in KLedgerViewCheckings::refreshView (this=0x8834994) at kledgerviewcheckings.cpp:165 #20 0x0818250e in KLedgerView::slotSelectAccount (this=0x88348a8, accountId=@0x85ab6f8) at kledgerview.cpp:370 #21 0x08834520 in ?? () #22 0x46b11e80 in ?? () from /usr/qt/3/lib/libqt-mt.so.3 #23 0x088341b8 in ?? () #24 0xbf93f46c in ?? () #25 0xbf93f27c in ?? () #26 0x4680c4a4 in QWidgetStack::raiseWidget () from /usr/qt/3/lib/libqt-mt.so.3 Previous frame inner to this frame (corrupt stack?) ======================================%<====================================== I tried it before, and it also crashed everytime i clicked New. Apparently kmymoney2 will not run if you compile it with -Os in your CFLAGS. I had this exact problem. It lies with the compile options you're using. KMyMoney2 will not run correctly if compiled with -Os. Try re-compiling it with -O2 (works for me) or -O3 and see if that helps. Ebuilds do not build with -Os anymore. If this doesn't fix the problem for you, Patrick, reopen please. Thank you Carsten. Using "-O2" in place of "-Os" solves the problem. But shouldn't the ebuild prevent the use of "-Os" either with an error message or by stripping this flag ? (In reply to comment #11) > Thank you Carsten. > Using "-O2" in place of "-Os" solves the problem. But shouldn't the ebuild > prevent the use of "-Os" either with an error message or by stripping this flag > ? If something doesn't build with -O2, there's something really broken and maybe the build script would not fall back to any optimization, if not provided. Grep the tree how many applications do not build with -Os - no we don't warn for this. There's no reason to do so. |