TODO-list for amaroK
======================
<nick>  == reported by
-->nick == assigned to


SHORT-TERM (URGENT):

          <markey> When "Repeat Track" is enabled, turn the play icon in CurrentTrack into a
                   "recycle" style icon, as feedback.

          <mxcl>   Should be able to open collection browser by right clicking on stuff in contextB,
                   so show the artist or album that is right clicked.

          <mxcl>   We should make regular backups of the user's statistics tables, we'll get so many angry
                   users if they start to lose stats.

          <muesli> Enabling "stop playing after current track" and enqueueing a song at the same time confuses amarok.

          <mxcl>   If you inline set the title tag to "", prettyTitle gets inserted as the title tag.

          <muesli> Same for storing / looking for a compilation-cover on the local hdd.

          <muesli> When we're searching a cover for a compilation, cut off the artist's name, it doesn't help.

          <mxcl>   loadEngine can call statusbar::message() at the void-engine stage and crash because
                   the statusbar is not yet created.

          <mxcl>   PlaylistLoader takes forever to load my new media directory, I think i can help a little,
                   I promise not to make the class awful again like last time!

          <mxcl>   Collection scan cannot be cancelled

          <markey> Running on GNOME, amaroK's windows do not show the app icon, but instead a blank icon.
                   Uraeus says amaroK is the only KDE app with this problem.

          <mxcl>   When an engine fails to load, the next best engine should be chosen, not the first in the list.

          <markey> When the KDE color scheme is changed while amaroK is running, all toolbar buttons
                   (those with text) lose their texts.

          <muesli> Take care of KToolbars in Context/Collection for palette changes.

          <mxcl>   With one track in pls and repeat and random mode on, amaroK crashes at track end.

          <mxcl>   You can't add or drag albums from the context browser anymore

          <markey> "Handbook" and "About" menu entries are disabled (greyed out) for some people.
                   For the life of me I can't reproduce this, even with KDE 3.3.
          <madp8>  After merge of Head into make_it_cool the About amaroK entry works again, but now Report Bug is disabled.

  ADD 180 <muesli> Show "Artist - Song" for Various Artist folder.

  FIX 134 <markey> Ctrl-C in Playlist for copying title doesn't work, because the event gets eaten by another widget.

MID-TERM:

  ADD 148 <markey> AudioCD support for gst engine (cdparanoia ! *sink). -->markey

  ADD 143 <mxcl>   DCOP interface for ContextBrowser

  FIX 121 <markey> We should cut down on unnecessary/redundant debug output/warnings (noise).

  ADD 105 <markey> Make ArtsEngine depend not only on kdemultimedia-devel, but also on kdemultimedia,
                   since arts itself contains these crappy decoders and ppl come complain about bad sound.
                   Update: Would be even better to detect the mpeglib arts-plugins directly, since some
                   distros offer them as a separate package.

  ADD 127 <mxcl>   Connect PlayerWindow navigation buttons to KAction enabled states

  ADD 104 <mxcl>   Perhaps a nice idea: when you drag playlistItems to a branch in the collection browser
                   it prompts to change the track's tags, so drag a track to the "moolaaa" album and that
                   track get's it's album tag changed to "moolaaa" and is inserted into the branch, so the user
                   know's what has happened.

  ADD 100 <mxcl>   We have several areas where we ask for paths, it would be good to make it so these
                   always reflect the most recent path the user has used, eg looking in /my/music/bands
                   in the FileBrowser means when you open the SearchBrowser this is the search path
                   would be easy with a KConfig XT key. May be nice to do this with the URL histories too.

  ADD  96 <mxcl>   User asked for a CTRL-J itty-bitty dialog that allows you to jump to a specific part
                   of a track. I'll see if I can do it with tiny amount of code -->mxcl

  FIX  87 <muesli> Don't rely on KDE timeouts to see whether a file is accessible or not,
                   since this really sucks for disconnected network shares. XMMS handles
                   this way better and it really is a problem in userland. maybe a thread
                   helps, which simply tries to fopen() the file. if this task hasn't been
                   finished in (let's say) 3 seconds, jump to the next song. XMMS even
                   remembers such files and their folders, so that it's not going to open
                   another file from that folder for the next few minutes. what about hdd
                   sleep-timeouts? opinions?

  CHG  78 <mxcl>   Determine some behavior for the clear/shuffle/etc. buttons when a search is in action
                   clear   -> only clear the stuff that was searched for?
                   shuffle -> stop the search and do normal shuffle?
                   ADDitionally what to do when user rearranges a set of items that are the search result?
          <larson> No big deal to me as long as the behaviour is consistent. I.e. if shuffle shuffles
                   the search, then clear should clear the search only, and visa versa.

  FIX  76 <larson> Make playlist toolbar buttons toggle like the playerwidget buttons.

  ADD  75          Toolbar button in FileBrowser for switching recursive directory reading.

  FIX  73 <mxcl>   Can't resize newly displayed columns if they are hidden at beginning of session -->mxcl

  ADD  39 <markey> Add playlist column for media-type (mp3, ogg, mod, etc).
                   Display type of media next to bitrate (<berkus> i moved it here, seems its the same as above, no?)

  ADD  28 <muesli> Add an option "clean up playlist on startup".
          <mxcl>   Do you mean remove duplicates or dead entries etc. ? Cool.

  ADD     <mxcl>   Option: don't crossfade for sequential tracks on same album. Comments? -->mxcl
                   Of course, there would still be the up to 150ms gap, but we can fix that some other time..
          <markey> Please clarify: is this the same as BR #75388 ?
          <mxcl>   No, this is just to make crossfading not ruin album transitions

  FIX              Add dirs to combo history when user adds a track from that dir to the playlist.

  ADD              "Show playlist" to the right click menu, redundant but necessary.

  ADD              More KTips, better KTips, somehow use the "Did you know" tip dialog (eg kmail, gideon, etc.) -->mxcl

  ADD              History to add dialog, or implement better system for adding urls etc.

  ADD              Option to automatically adjust column widths.

  ADD              Option to implicitly sort playlist by { track, album } (on drop only) -->mxcl

  ADD              "Add item"-dialog should support multiple selections.

  ADD     <berkus> Playmode indication button in main widget (repeat track/pl/shuffle), clickable.


LONG-TERM:

  ADD  32 <markey> Icecast metadata support (uses UDP channel) -->markey

  CHG  21 <markey> Use more accurate interpolation for analyzers (cubic or spline)

  ADD              Tabbed playlists.
                   Pro: it's convenient to have several playlists
                   Contra: the playlist is getting cluttered enough as it is!

  ADD              Make windows magnetic / sticking together (difficult).

  ADD              Playlist export (generate text or html document from playlist entries)

  ADD              Make PlayerWidget shadeable (like XMMS)
          <mxcl>   Doesn't the systray provide this functionality already?
          <berkus> No it doesn't, double click the winamp/xmms window and see for yourself
          <larson> How do you propose this should work? Since we are handled by kwin and have
                   normal window borders, double clicking the titlebar is handled by kwin. Also, should
                   the playlist be shadable?

  ADD              Support for compressed archives / tarballs

  ADD     <mxcl>   Implement beat detection (thread?), interface should glow/move to
                   the beat, visualisations have access to beat/bpm info.

  ADD              Audio system info widget, showing all available codecs and similar info.

  CHG              Resizable playerwidget, like in Winamp3.


IDEAS:

  ADD              Bookmarks inside of tracks (good for very long tracks), and nifty bookmark browser

  ADD              Using filelight (as a kpart maybe) for a graphical representation of the playlist. so
                   you could see at first glance how the altogether playing time is divided into different
                   albums, tunes and so on.


DISCUSSING:

          <markey> I'd very much appreciate people keeping line length in all amaroK sources/textfiles
                   at 110 characters max. Longer lines cause horrible dynamic line breaks or scrolling when
                   you only have limited screen width, like in console or kdevelop. pretty please with icing =)
          <mxcl>   I added a 110 char marker to my editor (since ages ago). However I don't always keep to it.
                   Breaking lines is most often ugly :( Mostly I do though. You can praise me now ;)


DO-NOT-IMPLEMENT:

  FIX  61 <markey> Allow removing of playlist items by dragging back into browser.
          <larson> I think this is really weird. When I drag something I expect that someting to be
                   ADDed or opened in the target. Not removed from the sender.
                   (RFC: is this still appropriate or would it be misleading?)
          <muesli> imho, it's misleading and not hid-compatible. i would rather
                   expect that file to be copied to the browser's current directory.

  ADD              "Hide playlist when main widget is not active" option (?? comments please: )
          <berkus> Noo, we have it hiding into tray, thats enough (imagine how much flashing will be
                   if i drag mouse around with "focus follows mouse" on - this is the one i use all the time)
          <mxcl>   Hence it's an option, you'd not use it with focus follows mouse. But it was just an idea
                   anyway.. dunno if I like the sound of it anymore either.


BACKTRACE/DEBUG

From Lauri 2004/11/30:

#0  0x29c9a697 in poll () from /lib/libc.so.5
#1  0x29c31e91 in poll () from /usr/lib/libpthread.so.1
#2  0x2991a616 in _XWaitForWritable () from /usr/X11R6/lib/libX11.so.6
#3  0x2991ac2c in _XFlushInt () from /usr/X11R6/lib/libX11.so.6
#4  0x2991abb8 in _XFlush () from /usr/X11R6/lib/libX11.so.6
#5  0x298feb8c in XCopyArea () from /usr/X11R6/lib/libX11.so.6
#6  0x293ec2e5 in bitBlt () from /usr/X11R6/lib/libqt-mt.so.3
#7  0x081549b6 in BlockAnalyzer::analyze (this=0x8429a00, s=@0xbfbfe0d0) at /cvs/kdeextragear-1/amarok/src/analyzers/blockanalyzer.cpp:129
#8  0x0815e972 in Analyzer::Base<QWidget>::demo (this=0x8429a00) at /cvs/kdeextragear-1/amarok/src/analyzers/analyzerbase.cpp:144
#9  0x0815e248 in Analyzer::Base<QWidget>::drawFrame (this=0x8429a00) at /cvs/kdeextragear-1/amarok/src/analyzers/analyzerbase.cpp:120
#10 0x0815e046 in Analyzer::Base2D::draw (this=0x8429a00) at analyzerbase.h:77
#11 0x0815dc1a in Analyzer::Base2D::qt_invoke (this=0x8429a00, _id=45, _o=0xbfbfe1e0) at analyzerbase.moc:82
#12 0x29486ab6 in QObject::activate_signal () from /usr/X11R6/lib/libqt-mt.so.3
#13 0x294869ca in QObject::activate_signal () from /usr/X11R6/lib/libqt-mt.so.3
#14 0x29787602 in QTimer::timeout () from /usr/X11R6/lib/libqt-mt.so.3
#15 0x294a6089 in QTimer::event () from /usr/X11R6/lib/libqt-mt.so.3
#16 0x2942e0a9 in QApplication::internalNotify () from /usr/X11R6/lib/libqt-mt.so.3
#17 0x2942d4d6 in QApplication::notify () from /usr/X11R6/lib/libqt-mt.so.3
#18 0x28fce16e in KApplication::notify (this=0xbfbfe740, receiver=0x8429a74, event=0xbfbfe4f0) at /cvs/kdelibs/kdecore/kapplication.cpp:515
#19 0x2941e447 in QEventLoop::activateTimers () from /usr/X11R6/lib/libqt-mt.so.3
#20 0x293debb8 in QEventLoop::processEvents () from /usr/X11R6/lib/libqt-mt.so.3
#21 0x2943f25b in QEventLoop::enterLoop () from /usr/X11R6/lib/libqt-mt.so.3
#22 0x2943f1b4 in QEventLoop::exec () from /usr/X11R6/lib/libqt-mt.so.3
#23 0x2942e200 in QApplication::exec () from /usr/X11R6/lib/libqt-mt.so.3
#24 0x0813e9f2 in main (argc=1, argv=0xbfbfe890) at /cvs/kdeextragear-1/amarok/src/amarokcore/main.cpp:70



From Xt:

18:30 <xt> Program received signal SIGSEGV, Segmentation fault.
18:30 <xt> [Switching to Thread 16384 (LWP 26659)]
18:30 <xt> 0x0000002a989f3a66 in g_source_set_closure ()
18:30 <xt>    from /usr/lib/libgobject-2.0.so.0
18:30 <xt> (gdb) bt
18:30 <xt> #0  0x0000002a989f3a66 in g_source_set_closure ()
18:30 <xt>    from /usr/lib/libgobject-2.0.so.0
18:30 <xt> #1  0x0000002a989f7a2c in g_type_register_static ()
18:30 <xt>    from /usr/lib/libgobject-2.0.so.0
18:30 <xt> #2  0x0000002a98698e73 in gst_equalizer_get_type ()
18:30 <xt>    from /usr/kde/3.3/lib/kde3/libamarok_gstengine_plugin.so
18:30 <xt> #3  0x0000002a98699786 in gst_equalizer_new ()
18:30 <xt>    from /usr/kde/3.3/lib/kde3/libamarok_gstengine_plugin.so
18:30 <xt> #4  0x0000002a98692439 in GstEngine::createPipeline ()
18:30 <xt>    from /usr/kde/3.3/lib/kde3/libamarok_gstengine_plugin.so
18:30 <xt> #5  0x0000002a98692a1a in GstEngine::init ()
18:30 <xt>    from /usr/kde/3.3/lib/kde3/libamarok_gstengine_plugin.so
18:30 <xt> #6  0x00000000004871a5 in QValueListPrivate<QString>::contains ()
18:30 <xt> #7  0x0000000000449082 in QPtrList<KFileItem>::deleteItem ()
18:30 <xt> #8  0x000000000044a46c in QPtrList<KFileItem>::deleteItem ()
18:30 <xt> #9  0x00000000004fb4ea in QWizard::setFinish ()
18:30 <xt> #10 0x0000002a95d94e31 in __libc_start_main () from /lib/libc.so.6
18:30 <xt> #11 0x000000000044269a in ?? ()



From Arpu, on switching to gst-engine:

amarok: [GstConfigDialog::GstConfigDialog(const GstEngine*)]
amarok: [void App::slotConfigAmarok(int)]
amarok: [virtual GstConfigDialog::~GstConfigDialog()]
amarok: [virtual amaroK::PluginConfig* GstEngine::configure() const]
amarok: [GstConfigDialog::GstConfigDialog(const GstEngine*)]
amarok: [virtual void GstConfigDialog::save()]
amarok: [Gst-Engine] Rebuilding output pipeline with new settings.
amarok: Thread scheduling priority: 2
amarok: Sound output method: alsasink
amarok: CustomSoundDevice: false
amarok: Sound Device:
amarok: CustomOutputParams: false
amarok: Output Params:
amarok: [void gst_equalizer_base_init(void*)]
amarok: [void gst_equalizer_class_init(GstEqualizerClass*)]
amarok: [void gst_equalizer_init(GstEqualizer*)]
[New Thread -1257116752 (LWP 15891)]
[New Thread -1279992912 (LWP 15892)]

Program received signal SIGFPE, Arithmetic exception.
[Switching to Thread -1243098432 (LWP 15877)]
0xb404ed2a in _snd_pcm_adpcm_open () from /usr/lib/libasound.so.2
(gdb) bt
#0  0xb404ed2a in _snd_pcm_adpcm_open () from /usr/lib/libasound.so.2
#1  0xb4041081 in snd_pcm_hw_refine_slave () from /usr/lib/libasound.so.2
#2  0xb404ee98 in _snd_pcm_adpcm_open () from /usr/lib/libasound.so.2
#3  0xb4041338 in snd_pcm_hw_refine () from /usr/lib/libasound.so.2
#4  0xb4041399 in snd_pcm_hw_refine () from /usr/lib/libasound.so.2
#5  0xb4053389 in _snd_pcm_rate_open () from /usr/lib/libasound.so.2
#6  0xb40413da in snd_pcm_hw_refine () from /usr/lib/libasound.so.2
#7  0xb4032981 in snd_pcm_hw_params () from /usr/lib/libasound.so.2
#8  0xb5913dbe in gst_alsa_hw_params_dump () from /usr/lib/gstreamer-0.8/libgstalsa.so
#9  0xb59146a0 in gst_alsa_hw_params_dump () from /usr/lib/gstreamer-0.8/libgstalsa.so
#10 0xb59125f0 in gst_alsa_link () from /usr/lib/gstreamer-0.8/libgstalsa.so
#11 0xb5919e30 in gst_alsa_mixer_get_type () from /usr/lib/gstreamer-0.8/libgstalsa.so
#12 0xb5917bf1 in gst_alsa_sink_get_type () from /usr/lib/gstreamer-0.8/libgstalsa.so
#13 0xb1802691 in gst_element_set_state () from /usr/lib/libgstreamer-0.8.so.1
#14 0xb180230f in gst_element_set_state () from /usr/lib/libgstreamer-0.8.so.1
#15 0xb17f2b7f in gst_bin_child_state_change () from /usr/lib/libgstreamer-0.8.so.1
#16 0xb17f2a64 in gst_bin_child_state_change () from /usr/lib/libgstreamer-0.8.so.1
#17 0xb17f2e9e in gst_bin_child_state_change () from /usr/lib/libgstreamer-0.8.so.1
#18 0xb182e4a7 in gst_thread_get_current () from /usr/lib/libgstreamer-0.8.so.1
#19 0xb1802691 in gst_element_set_state () from /usr/lib/libgstreamer-0.8.so.1
#20 0xb17f30f7 in gst_bin_set_state () from /usr/lib/libgstreamer-0.8.so.1
#21 0xb180230f in gst_element_set_state () from /usr/lib/libgstreamer-0.8.so.1
#22 0xb190bf25 in GstEngine::createPipeline () from /usr/lib/kde3/libamarok_gstengine_plugin.so
#23 0xb190b01d in GstEngine::configChanged () from /usr/lib/kde3/libamarok_gstengine_plugin.so
#24 0xb190f85e in GstEngine::qt_invoke () from /usr/lib/kde3/libamarok_gstengine_plugin.so
#25 0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#26 0xb6f94354 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#27 0xb5a2045c in amaroK::PluginConfig::settingsSaved () from /usr/lib/kde3/libamarok_void-engine_plugin.so
#28 0xb19031ce in GstConfigDialog::save () from /usr/lib/kde3/libamarok_gstengine_plugin.so
#29 0x080aee5b in AmarokConfigDialog::updateSettings ()
#30 0xb78e081b in KConfigDialog::qt_invoke () from /usr/lib/libkdeui.so.4
#31 0x080af4f2 in AmarokConfigDialog::qt_invoke ()
#32 0xb6f944a6 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#33 0xb6f94354 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#34 0xb783e2ce in KDialogBase::okClicked () from /usr/lib/libkdeui.so.4
#35 0xb783c0d2 in KDialogBase::slotOk () from /usr/lib/libkdeui.so.4
#36 0xb783e7f7 in KDialogBase::qt_invoke () from /usr/lib/libkdeui.so.4
#37 0xb78e0883 in KConfigDialog::qt_invoke () from /usr/lib/libkdeui.so.4
#38 0x080af4f2 in AmarokConfigDialog::qt_invoke ()
#39 0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#40 0xb6f94354 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#41 0xb72d928e in QButton::clicked () from /usr/lib/libqt-mt.so.3
#42 0xb702697a in QButton::mouseReleaseEvent () from /usr/lib/libqt-mt.so.3
#43 0xb6fca697 in QWidget::event () from /usr/lib/libqt-mt.so.3
#44 0xb6f37bcf in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#45 0xb6f372c4 in QApplication::notify () from /usr/lib/libqt-mt.so.3
#46 0xb7512da3 in KApplication::notify () from /usr/lib/libkdecore.so.4
#47 0xb6ecc640 in QETWidget::translateMouseEvent () from /usr/lib/libqt-mt.so.3
#48 0xb6eca2ce in QApplication::x11ProcessEvent () from /usr/lib/libqt-mt.so.3
#49 0xb6ee11a4 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#50 0xb6f49f28 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#51 0xb6f49dd8 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#52 0xb6f37e21 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#53 0x0814e8d0 in main ()
(gdb)




From coolo:

#0  0x414119a2 in QListViewItem::sortChildItems (this=0x83d08d8, column=1, ascending=true)
    at widgets/qlistview.cpp:1418
#1  0x41412335 in QListViewItem::enforceSortOrder (this=0x83d08d8) at widgets/qlistview.cpp:1719
#2  0x4141eae8 in QListView::firstChild (this=0x8397ec8) at widgets/qlistview.cpp:5872
#3  0x41423e67 in QListViewItemIterator (this=0xbfffe260, lv=0x8397ec8, iteratorFlags=1)
    at widgets/qlistview.cpp:7452
#4  0x080e8035 in MyIterator (this=0xbfffe260, view=0x8397ec8, flags=1)
    at /home/coolo/prod/kdeextragear-1/amarok/src/playlist.cpp:67
#5  0x080e06f0 in Playlist::playNextTrack (this=0x8397ec8)
    at /home/coolo/prod/kdeextragear-1/amarok/src/playlist.cpp:366
#6  0x080e0b05 in Playlist::playCurrentTrack (this=0x8397ec8)
    at /home/coolo/prod/kdeextragear-1/amarok/src/playlist.cpp:440
#7  0x080e6cb0 in Playlist::qt_invoke (this=0x8397ec8, _id=119, _o=0xbfffe360) at playlist.moc:218
#8  0x4132a7c3 in QObject::activate_signal (this=0x81be4a0, clist=0x83d96b8, o=0xbfffe360)
    at kernel/qobject.cpp:2357
#9  0x4132a662 in QObject::activate_signal (this=0x81be4a0, signal=3) at kernel/qobject.cpp:2326
#10 0x080c7a0c in EngineController::orderCurrent (this=0x81be4a0) at enginecontroller.moc:174
#11 0x080c6d9e in EngineController::play (this=0x81be4a0)
    at /home/coolo/prod/kdeextragear-1/amarok/src/enginecontroller.cpp:237
#12 0x080c7b08 in EngineController::qt_invoke (this=0x81be4a0, _id=4, _o=0xbfffe470) at enginecontroller.moc:194
#13 0x4132a7c3 in QObject::activate_signal (this=0x83754c8, clist=0x836ea00, o=0xbfffe470)
    at kernel/qobject.cpp:2357
#14 0x4132a662 in QObject::activate_signal (this=0x83754c8, signal=2) at kernel/qobject.cpp:2326
#15 0x40b2e7b2 in KAction::activated (this=0x83754c8) at kaction.moc:157
#16 0x40b2e16f in KAction::slotActivated (this=0x83754c8) at /home/coolo/prod/kdelibs/kdeui/kaction.cpp:1073
#17 0x40b2eab6 in KAction::qt_invoke (this=0x83754c8, _id=14, _o=0xbfffe580) at kaction.moc:181
#18 0x4132a7c3 in QObject::activate_signal (this=0x8391598, clist=0x83a9958, o=0xbfffe580)
    at kernel/qobject.cpp:2357
#19 0x41680ffc in QSignal::signal (this=0x8391598, t0=@0x83915c0) at .moc/debug-shared-mt/moc_qsignal.cpp:100
#20 0x41347f73 in QSignal::activate (this=0x8391598) at kernel/qsignal.cpp:212
#21 0x4143f8c6 in QPopupMenu::mouseReleaseEvent (this=0x83670e8, e=0xbfffe990) at widgets/qpopupmenu.cpp:1690
#22 0x41362a5f in QWidget::event (this=0x83670e8, e=0xbfffe990) at kernel/qwidget.cpp:4673
#23 0x412c7a6f in QApplication::internalNotify (this=0xbfffee20, receiver=0x83670e8, e=0xbfffe990)
    at kernel/qapplication.cpp:2635
#24 0x412c7225 in QApplication::notify (this=0xbfffee20, receiver=0x83670e8, e=0xbfffe990)
    at kernel/qapplication.cpp:2421
#25 0x40de8962 in KApplication::notify (this=0xbfffee20, receiver=0x83670e8, event=0xbfffe990)
    at /home/coolo/prod/kdelibs/kdecore/kapplication.cpp:518
#26 0x4125d4d1 in QApplication::sendSpontaneousEvent (receiver=0x83670e8, event=0xbfffe990) at qapplication.h:494
---Type <return> to continue, or q <return> to quit---
#27 0x41256252 in QETWidget::translateMouseEvent (this=0x83670e8, event=0xbfffed20)
    at kernel/qapplication_x11.cpp:4230
#28 0x41254133 in QApplication::x11ProcessEvent (this=0xbfffee20, event=0xbfffed20)
    at kernel/qapplication_x11.cpp:3439
#29 0x4126e748 in QEventLoop::processEvents (this=0x8313298, flags=4) at kernel/qeventloop_x11.cpp:192
#30 0x412dbc8a in QEventLoop::enterLoop (this=0x8313298) at kernel/qeventloop.cpp:198
#31 0x412dbba6 in QEventLoop::exec (this=0x8313298) at kernel/qeventloop.cpp:145
#32 0x412c7bef in QApplication::exec (this=0xbfffee20) at kernel/qapplication.cpp:2758
#33 0x08122ee0 in main (argc=1, argv=0xbfffefb4)
    at /home/coolo/prod/kdeextragear-1/amarok/src/amarokcore/main.cpp:66

amarok: [void ContextBrowser::setStyleSheet()]
amarok: Initial Color Properties: s:255 v:128
amarok: Final Colour Properties: s:125 v:128
amarok: KMultiTabBarTab::updateState(): setting text to an empty QString***************
amarok:     Time: 46.16s
amarok:   Init: CollectionBrowser
amarok: [CollectionView::CollectionView(CollectionBrowser*)]
amarok: [browserBar] Initialisation statistics:
amarok:   Init: ContextBrowser
amarok: [ContextBrowser::ContextBrowser(const char*)]
amarok: [void ContextBrowser::setStyleSheet()]
amarok: Initial Color Properties: s:255 v:128
amarok: Final Colour Properties: s:125 v:128
amarok: [void CollectionView::renderView()]
khtml (xml):  using compatibility parseMode
==13315== Invalid read of size 1
==13315==    at 0x76D08A75: memcpy (in /lib/tls/libc.so.6)
==13315==    by 0x815D168: balance_nonroot (btree.c:3277)
==13315==    by 0x815D9E9: balance (btree.c:3477)
==13315==    by 0x815DE58: sqlite3BtreeInsert (btree.c:3582)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==  Address 0x77A235B0 is 4 bytes before a block of size 1016 alloc'd
==13315==    at 0x7501E8B4: malloc (vg_replace_malloc.c:105)
==13315==    by 0x814BC8A: sqlite3MallocRaw (util.c:294)
==13315==    by 0x815DC3F: sqlite3BtreeInsert (btree.c:3557)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==    by 0x8122ECD: main (main.cpp:64)
==13315==
==13315== Invalid read of size 2
==13315==    at 0x76D08A7A: memcpy (in /lib/tls/libc.so.6)
==13315==    by 0x815D168: balance_nonroot (btree.c:3277)
==13315==    by 0x815D9E9: balance (btree.c:3477)
==13315==    by 0x815DE58: sqlite3BtreeInsert (btree.c:3582)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==  Address 0x77A235B1 is 3 bytes before a block of size 1016 alloc'd
==13315==    at 0x7501E8B4: malloc (vg_replace_malloc.c:105)
==13315==    by 0x814BC8A: sqlite3MallocRaw (util.c:294)
==13315==    by 0x815DC3F: sqlite3BtreeInsert (btree.c:3557)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==    by 0x8122ECD: main (main.cpp:64)
==13315==
==13315== Invalid read of size 4
==13315==    at 0x76D08A7C: memcpy (in /lib/tls/libc.so.6)
==13315==    by 0x815D168: balance_nonroot (btree.c:3277)
==13315==    by 0x815D9E9: balance (btree.c:3477)
==13315==    by 0x815DE58: sqlite3BtreeInsert (btree.c:3582)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==  Address 0x77A235B3 is 1 bytes before a block of size 1016 alloc'd
==13315==    at 0x7501E8B4: malloc (vg_replace_malloc.c:105)
==13315==    by 0x814BC8A: sqlite3MallocRaw (util.c:294)
==13315==    by 0x815DC3F: sqlite3BtreeInsert (btree.c:3557)
==13315==    by 0x81838B9: sqlite3VdbeExec (vdbe.c:3026)
==13315==    by 0x814D8E3: sqlite3_step (vdbeapi.c:183)
==13315==    by 0x80A3877: CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (collectiondb.cpp:606)
==13315==    by 0x80A7205: CollectionDB::retrieveFirstLevel(QString, QString, QString, QString, QStringList*, QStringList*) (collectiondb.cpp:1027)
==13315==    by 0x809A476: CollectionView::renderView() (collectionbrowser.cpp:384)
==13315==    by 0x809B6C8: CollectionView::cat3Menu(int, bool) (collectionbrowser.cpp:583)
==13315==    by 0x809851A: CollectionBrowser::CollectionBrowser(char const*) (collectionbrowser.cpp:129)
==13315==    by 0x80FB42F: void PlaylistWindow::addBrowser<CollectionBrowser>(char const*, QString const&, QString const&) (playlistwindow.cpp:104)
==13315==    by 0x80F994A: PlaylistWindow::init() (playlistwindow.cpp:319)
==13315==    by 0x808DB58: App::App() (app.cpp:99)
==13315==    by 0x8122ECD: main (main.cpp:64)
amarok: KMultiTabBarTab::updateState(): setting text to an empty QString***************
amarok:     Time: 39.74s
amarok:   Init: PlaylistBrowser
==13315== warning: Valgrind's pthread_attr_setinheritsched does nothing
==13315==          your program may misbehave as a result
==13315== warning: Valgrind's pthread_attr_destroy does nothing
==13315==          your program may misbehave as a result
amarok: [void ContextBrowser::setStyleSheet()]
amarok: Initial Color Properties: s:255 v:128
amarok: Final Colour Properties: s:125 v:128
amarok: KMultiTabBarTab::updateState(): setting text to an empty QString***************
amarok:     Time: 44.79s
amarok:   Init: CollectionBrowser
amarok: [CollectionView::CollectionView(CollectionBrowser*)]


From Lauri on FreeBSD:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 10 (LWP 100183)]
0x0815202f in balance_nonroot (pPage=0x868d448) at /cvs/kdeextragear-1/amarok/src/sqlite/btree.c:2902
2902    static int balance_nonroot(MemPage *pPage){
Current language:  auto; currently c
(gdb) bt
#0  0x0815202f in balance_nonroot (pPage=0x868d448) at /cvs/kdeextragear-1/amarok/src/sqlite/btree.c:2902
#1  0x081534fa in balance_deeper (pPage=0x86859d8) at /cvs/kdeextragear-1/amarok/src/sqlite/btree.c:3422
#2  0x08153547 in balance (pPage=0x86859d8) at /cvs/kdeextragear-1/amarok/src/sqlite/btree.c:3435
#3  0x08153a1f in sqlite3BtreeInsert (pCur=0x8661540, pKey=0x0, nKey=17, pData=0x865d370, nData=51) at /cvs/kdeextragear-1/amarok/src/sqlite/btree.c:3545
#4  0x081793c9 in sqlite3VdbeExec (p=0x8685e00) at /cvs/kdeextragear-1/amarok/src/sqlite/vdbe.c:3026
#5  0x08143938 in sqlite3_step (pStmt=0x8685e00) at /cvs/kdeextragear-1/amarok/src/sqlite/vdbeapi.c:159
#6  0x08093f65 in CollectionDB::execSql (this=0x8388768, statement=@0xbfa69c28, values=0x0, names=0x0, debug=false) at /cvs/kdeextragear-1/amarok/src/collectiondb.cpp:596
#7  0x080934c2 in CollectionDB::updateDirStats (this=0x8388768, path=
      {static null = {static null = <same as static member of an already seen type>, d = 0x81fa1e8, static shared_null = 0x81fa1e8}, d = 0x865e9e0, static shared_null = 0x81fa1e8}, datetime=1095275009) at /cvs/kdeextragear-1/amarok/src/collectiondb.cpp:477
#8  0x081027dd in CollectionReader::readDir (this=0x8655b00, dir=@0xbfa69d78, entries=@0xbfa69f38) at /cvs/kdeextragear-1/amarok/src/threadweaver.cpp:242
#9  0x08102c62 in CollectionReader::readDir (this=0x8655b00, dir=@0xbfa69e58, entries=@0xbfa69f38) at /cvs/kdeextragear-1/amarok/src/threadweaver.cpp:284
#10 0x08102c62 in CollectionReader::readDir (this=0x8655b00, dir=@0x82d5980, entries=@0xbfa69f38) at /cvs/kdeextragear-1/amarok/src/threadweaver.cpp:284
#11 0x08102671 in CollectionReader::doJob (this=0x8655b00) at /cvs/kdeextragear-1/amarok/src/threadweaver.cpp:222
#12 0x08101d84 in ThreadWeaver::run (this=0x83887e8) at /cvs/kdeextragear-1/amarok/src/threadweaver.cpp:105
#13 0x29291313 in QThreadInstance::start () from /usr/X11R6/lib/libqt-mt.so.3
#14 0x299ff9d5 in pthread_create () from /usr/lib/libpthread.so.1
#15 0x29b09def in _ctx_start () from /lib/libc.so.5


From Markus:

Program received signal SIGSEGV, Segmentation fault.
balance_nonroot (pPage=0x8594ea0) at btree.c:2905
2905      int nCell = 0;               /* Number of cells in aCell[] */
Current language:  auto; currently c
(gdb) bt
#0  balance_nonroot (pPage=0x8594ea0) at btree.c:2905
#1  0x081549a6 in balance_deeper (pPage=0x85838e0) at btree.c:3422
#2  0x08154a7d in balance (pPage=0x85838e0) at btree.c:3435
#3  0x08154dab in sqlite3BtreeInsert (pCur=0x8548200, pKey=0x0, nKey=17, pData=0x8590c70, nData=76) at btree.c:3545
#4  0x08175508 in sqlite3VdbeExec (p=0x858fd58) at vdbe.c:3026
#5  0x081477e9 in sqlite3_step (pStmt=0x858fd58) at vdbeapi.c:159
#6  0x08092232 in CollectionDB::execSql(QString const&, QStringList*, QStringList*, bool) (this=0x84eb548, statement=@0xbfadca10, values=0x0, names=0x0, debug=false) at collectiondb.cpp:596
#7  0x08090e1c in CollectionDB::updateDirStats(QString, long) (this=0x84eb548, path=
      {static null = {static null = <same as static member of an already seen type>, d = 0x8210e28, static shared_null = 0x8210e28}, d = 0x8582ec8, static shared_null = 0x8210e28}, datetime=1061836186)
    at collectiondb.cpp:477
#8  0x0810fb4b in CollectionReader::readDir(QString const&, QStringList&) (this=0x84eabf8, dir=@0xbfadcc40, entries=@0xbfadcf00) at threadweaver.cpp:242
#9  0x08110011 in CollectionReader::readDir(QString const&, QStringList&) (this=0x84eabf8, dir=@0xbfadcdc0, entries=@0xbfadcf00) at threadweaver.cpp:284
#10 0x08110011 in CollectionReader::readDir(QString const&, QStringList&) (this=0x84eabf8, dir=@0x8452fa0, entries=@0xbfadcf00) at threadweaver.cpp:284
#11 0x0810f8d9 in CollectionReader::doJob() (this=0x84eabf8) at /usr/X11R6/include/qvaluelist.h:535
#12 0x0810ed9d in ThreadWeaver::run() (this=0x84ed718) at threadweaver.cpp:105
#13 0x2919848b in QThreadInstance::start(void*) () from /usr/X11R6/lib/libqt-mt.so.3
#14 0xbfacd000 in ?? ()
#15 0x0813a0a1 in BoomAnalyzer::init() (this=0x84eb6fc) at boomanalyzer.cpp:69
Error accessing memory address 0x36: Bad address.



BT from samppa 09.01.2004: Huge playlist > 14000 items, hangs at startup

#0  0x4118bc3e in QListViewItem::sortChildItems ()
   from /usr/qt/3/lib/libqt-mt.so.3
#1  0x4118c39a in QListViewItem::enforceSortOrder ()
   from /usr/qt/3/lib/libqt-mt.so.3
#2  0x4119043d in QListView::buildDrawableList ()
   from /usr/qt/3/lib/libqt-mt.so.3
#3  0x411902ce in QListView::drawContentsOffset ()
   from /usr/qt/3/lib/libqt-mt.so.3
#4  0x411c422e in QScrollView::viewportPaintEvent ()
   from /usr/qt/3/lib/libqt-mt.so.3
#5  0x409a9f1c in KListView::viewportPaintEvent ()
   from /usr/kde/3.3/lib/libkdeui.so.4
#6  0x080bea3e in Playlist::viewportPaintEvent (this=0x82d1ed0, e=0x2)
    at playlist.cpp:885
#7  0x411c3c42 in QScrollView::eventFilter () from /usr/qt/3/lib/libqt-mt.so.3
#8  0x41192488 in QListView::eventFilter () from /usr/qt/3/lib/libqt-mt.so.3
#9  0x080beb55 in Playlist::eventFilter (this=0xbfffe3b0, o=0x415115f8,
    e=0x82d1ed0) at playlist.cpp:954
#10 0x410aca2e in QObject::activate_filters () from /usr/qt/3/lib/libqt-mt.so.3
#11 0x410ac95c in QObject::event () from /usr/qt/3/lib/libqt-mt.so.3
#12 0x410e50ef in QWidget::event () from /usr/qt/3/lib/libqt-mt.so.3
#13 0x41052cbf in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#14 0x41052025 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#15 0x40c044aa in KApplication::notify () from /usr/kde/3.3/lib/libkdecore.so.4
#16 0x4101c4dd in QWidget::repaint () from /usr/qt/3/lib/libqt-mt.so.3
#17 0x410e6341 in QWidget::repaint () from /usr/qt/3/lib/libqt-mt.so.3
#18 0x411915c1 in QListView::updateContents () from /usr/qt/3/lib/libqt-mt.so.3
#19 0x414011d7 in QListView::qt_invoke () from /usr/qt/3/lib/libqt-mt.so.3
#20 0x409adb3b in KListView::qt_invoke () from /usr/kde/3.3/lib/libkdeui.so.4
#21 0x080c222a in Playlist::qt_invoke (this=0xbfffe3b0, _id=1095833080,
    _o=0x82d3224) at playlist.moc:225
#22 0x410af0fc in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#23 0x410aef24 in QObject::activate_signal () from /usr/qt/3/lib/libqt-mt.so.3
#24 0x413eff7b in QTimer::timeout () from /usr/qt/3/lib/libqt-mt.so.3
#25 0x410d08d2 in QTimer::event () from /usr/qt/3/lib/libqt-mt.so.3
#26 0x41052cbf in QApplication::internalNotify ()
   from /usr/qt/3/lib/libqt-mt.so.3
#27 0x41052025 in QApplication::notify () from /usr/qt/3/lib/libqt-mt.so.3
#28 0x40c044aa in KApplication::notify () from /usr/kde/3.3/lib/libkdecore.so.4
#29 0x41042305 in QEventLoop::activateTimers ()
   from /usr/qt/3/lib/libqt-mt.so.3
#30 0x40ffcbbb in QEventLoop::processEvents () from /usr/qt/3/lib/libqt-mt.so.3
#31 0x0807c6b0 in App::applySettings (this=0xbfffee70, firstTime=true)
    at app.cpp:433
#32 0x0807a485 in App (this=0xbfffee70) at app.cpp:106
#33 0x080febb9 in main (argc=2, argv=0xbffff004) at main.cpp:62


BT for coverfetching 2-dec-2004

#0  0xb726654b in QString::QString () from /usr/lib/libqt-mt.so.3
#1  0x080cc4c3 in CoverManager::loadCover ()
#2  0x080cc172 in CoverManager::coverFetched ()
#3  0x080cec19 in CoverManager::qt_invoke ()
#4  0xb6f944a6 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#5  0x080ac15f in CollectionEmitter::coverFetched ()
#6  0x080a798f in CollectionDB::coverFetcherResult ()
#7  0x080abd90 in CollectionDB::qt_invoke ()
#8  0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#9  0x080c6008 in CoverFetcher::result ()
#10 0x080c5b48 in CoverFetcher::finish ()
#11 0x080c55c2 in CoverFetcher::finishedImageFetch ()
#12 0x080c60cf in CoverFetcher::qt_invoke ()
#13 0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#14 0xb7a8dbaa in KIO::Job::result () from /usr/lib/libkio.so.4
#15 0xb7a770dc in KIO::Job::emitResult () from /usr/lib/libkio.so.4
#16 0xb7a785dc in KIO::SimpleJob::slotFinished () from /usr/lib/libkio.so.4
#17 0xb7a7ba2e in KIO::TransferJob::slotFinished () from /usr/lib/libkio.so.4
#18 0xb7a8fb8d in KIO::TransferJob::qt_invoke () from /usr/lib/libkio.so.4
#19 0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#20 0xb6f94354 in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#21 0xb7a6d46e in KIO::SlaveInterface::finished () from /usr/lib/libkio.so.4
#22 0xb7a6c069 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.4
#23 0xb7a6b589 in KIO::SlaveInterface::dispatch () from /usr/lib/libkio.so.4
#24 0xb7a68fbb in KIO::Slave::gotInput () from /usr/lib/libkio.so.4
#25 0xb7a6acd8 in KIO::Slave::qt_invoke () from /usr/lib/libkio.so.4
#26 0xb6f9452c in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#27 0xb6f9468d in QObject::activate_signal () from /usr/lib/libqt-mt.so.3
#28 0xb72d2eb2 in QSocketNotifier::activated () from /usr/lib/libqt-mt.so.3
#29 0xb6fb0cd0 in QSocketNotifier::event () from /usr/lib/libqt-mt.so.3
#30 0xb6f37bcf in QApplication::internalNotify () from /usr/lib/libqt-mt.so.3
#31 0xb6f371ce in QApplication::notify () from /usr/lib/libqt-mt.so.3
#32 0xb7512da3 in KApplication::notify () from /usr/lib/libkdecore.so.4
#33 0xb6f275da in QEventLoop::activateSocketNotifiers () from /usr/lib/libqt-mt.so.3
#34 0xb6ee0c03 in QEventLoop::processEvents () from /usr/lib/libqt-mt.so.3
#35 0xb6f49f28 in QEventLoop::enterLoop () from /usr/lib/libqt-mt.so.3
#36 0xb6f49dd8 in QEventLoop::exec () from /usr/lib/libqt-mt.so.3
#37 0xb6f37e21 in QApplication::exec () from /usr/lib/libqt-mt.so.3
#38 0x0815fa40 in main ()
