--nextPart2290504.GQcjUiEWry Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Marc Espie wrote: >In my opinion, there's a lot of stuff missing in DEBUG (the one in >kdelibs). > >- is there a magical cmake settings to compile applications with >debugging info, BUT without any of the extra messages ? I need this >because of a few heisenbugs, I've got at least two or three instances >of crashes that go away when I compile with full debug info, so I >suspect that some of the debug code does have side-effects. Two possible reasons for that: 1) code being called from inside kDebug(), which means it won't get called= =20 from a release-mode build or 2) a real heisenbug that goes away in a debug-mode build simply because= =20 of different compiler flags or memory layout. To turn off debugging completely, set the macro that is listed in=20 kdebug.h. >- should document stuff like -nofork along with -nocrashhandler... any >apps that don't react to -nofork ? Writing out the basic kde app model >in there would make sense (is it still fork() from kdeinit ?) They are documented: --nocrashhandler Disable crash handler, to get core dumps --nofork Do not run in the background. The --nofork option only applies to applications deriving from=20 KUniqueApplication. KDE applications are normal applications. A KUniqueApplication will=20 fork(): the parent process exits, the child continues. kdeinit is=20 just .the master app launcher: fork + exec. >- what's the protocol about kioslave debugging ? Especially when you're >not on linux, you do not get symbol backtrace. This is really poorly >documented... I found out about DBUS_BLOCK_ON_ABORT, which is good. >Now I'm stuck (don't laugh) because I actually do not know which app it >is running, so I don't know which symbol-set to load... KDE_SLAVE_DEBUG_WAIT=3Dprotocol kdeinit4 Works by calling raise(SIGSTOP) in the beginning of the ioslave, before=20 control is passed to the slave code. I don't care about platforms where=20 raise() doesn't work. The application for any ioslave is kdeinit4 or kioslave. Depends on how=20 the process was launched. You can tell that by looking in the /proc=20 structure for the process (don't tell me that information isn't easily=20 accessible on the BSDs because that would be a stupid decision on the=20 kernel developers). =2D-=20 =A0 Thiago Macieira =A0- =A0thiago (AT) macieira.info - thiago (AT) kde.org =A0 =A0 PGP/GPG: 0x6EF45358; fingerprint: =A0 =A0 E067 918B B660 DBD1 105C =A0966C 33F5 F005 6EF4 5358 --nextPart2290504.GQcjUiEWry Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (GNU/Linux) iD8DBQBHpbvyM/XwBW70U1gRApY5AJ93JA3Hn+DKU7m2na7sLKUKLvbfHwCfTnRg XESXyaeIV7bFYT8XoRTLDtQ= =9qHy -----END PGP SIGNATURE----- --nextPart2290504.GQcjUiEWry--