to avoid conversion from QString to QByteArray when possible, the trace is
handled as array of latin1-encoded strings anyway
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
a crashed program trying to restart itself is very unreliable,
especially program that uses KUniqueApplication instance. so, instead
all the information about the crash shall be written to a file on the
disk (in the temporary directory) and read by external kcrash KDED
module that will report the crash (possibily even upload the crash
details somewhere) and restart the program as necessarry.
this also opens up possibility for per-application configuration for
things such as the automatic restart feature but that shall be done by the
kcrash KDED module instead (parsing a config from a crashed program is
not a good idea)
KCrash::NoRestart will be unused but kept for future expansion
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
for programs that cannot call drkonqi to show backtrace (such as
ksmserver or any non-GUI D-Bus service)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
for programs that cannot be restarted by simply exec-ing them such as the
KIO slaves which require application socket as argument
note that restarting is maybe works thing - programs started by kdesudo
cannot be restarted (properly) as they are exec-ed by other program that
does the setup for them to function the way they should
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
generally, those signals should not be blocked but it seems something is
blocking consequent SIGSEGV signals send by `kill` for example
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
since any message type can be set to log via syslog() that may be the only
way to know when a program without interface (such as service) crashes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
much simpler and easier to maintain, also it will be proper D-Bus
service now with no sockets, process title hack and whatnot. KCrash
and startkde script (in kde-workspace repo) have to be adjusted for
it tho
note that the internal KIO scheduler already has the functionality to
put slaves on hold but now they will be started as detached process.
eventually they may become plugins (they are loaded as such by kioslave
program) without event loop dispatcher
fixes application startup notification (ASN) and cleanup issues
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>