that's the interesting point. who throws std::bad_alloc, and why?
does it allocate too much or does it free wrong? no clue what could
produce a std::bad_alloc.

Don't know anything about KDE but I have some knowledge of C++.
bad_alloc can be thrown anywhere new is used unless nothrow has been
specified. To make things a bit worse it can also be thrown from a
number of containers in the standard library, but if I know KDE they
probably don't use standard library containers. The most likely reason
to throw bad_alloc is because there is no free memory, but if the app
allocated all free memory before crashing it would be quite easily detected.

Freeing memory using delete will not throw bad_alloc, though it might
segfault.

Of course, the KDE devs alos are free to throw bad_alloc whereever,
whenever and for whatever reason they like but that's not very likely
the cause, though a quick search for 'throw' might give something. Also,
some debuggers can break when an exception is thrown instead of
continuing execution of any catch-blocks or whatever, don't know if gdb
is one of them.