diff options
Diffstat (limited to 'kioslave/DEBUG.howto')
-rw-r--r-- | kioslave/DEBUG.howto | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/kioslave/DEBUG.howto b/kioslave/DEBUG.howto deleted file mode 100644 index d15cb7034..000000000 --- a/kioslave/DEBUG.howto +++ /dev/null @@ -1,89 +0,0 @@ -This document describes how you can debug an io-slave with gdb. - -How does an io-slave get started? -================================= - -Your application request 'klauncher' via DCOP for a slave. If 'klauncher' does -not have an idle slave ready, it will ask tdeinit to start a new one. -tdeinit forks and dlopens the library that contains the io-slave. -Then it calls kdemain() or, if that is not present, main() in the library. - - -Attaching gdb to a io-slave -=========================== - -Due to the above sequence it is rather hard to get an io-slave in your -debugger. But wait there is hope. You can start klauncher in such a way -that slaves for a certain protocol are started in debug mode. - -E.g. to start all 'http' slaves in debug mode, you type: - - TDE_SLAVE_DEBUG_WAIT=http tdeinit - -This will restart 'tdeinit' and 'klauncher'. - -When your application now requests a http slave, the slave will be started -by tdeinit, but before it calls kdemain() (cq. main()) it will suspend the -slave by sending it a SIGSTOP signal. - -In the terminal from which you started tdeinit you will get the following -message: - -tdeinit: Suspending process -tdeinit: 'gdb tdeinit 16779' to debug -tdeinit: 'kill -SIGCONT 16779' to continue - -You can now debug your slave by typing (or pasting) 'gdb tdeinit 16779' in -a terminal. If you don't want to debug a slave you can let it continue by -sending it a SIGCONT by typing 'kill -SIGCONT 16779'. - -Be aware that slaves will not be killed while they are suspended. - -Once you have started gdb, you can set e.g. breakpoints and then resume the -slave by typing 'continue'. The debugger will return immediate with a message -that a SIGSTOP has been received so you will have to type 'continue' a second -time. - - -Debugging io-slaves with valgrind -================================= - -KLauncher can be told to run certain io-slaves through valgrind. The following -command can be used to let klauncher run all https io-slaves via valgrind: - - TDE_SLAVE_VALGRIND=https tdeinit - -The valgrind output will appear as the stderr output of the tdeinit process. -The $VALGRIND_OPTS environment variable can be used to pass options to valgrind. -If you want to use a different skin: - - TDE_SLAVE_VALGRIND_SKIN=calltree ( for example ) - - -How to get debug output -======================= - -It is useful to redirect the debug output of your particular slave to a file -instead of stderr. E.g. I myself use the following lines in -$TDEDIR/share/config/kdebugrc. - - [7113] - InfoOutput=0 - InfoFilename=/tmp/http - [7103] - InfoOutput=0 - InfoFilename=/tmp/http - -This redirects all debug info for areas 7103 and 7113 (as used by kio_http) -to the file /tmp/http. - -To get debug information from the SMB slave you can add the following to -kioslaverc: - -[SMB] -DebugLevel=100 - -This will print additional debug info to the stderr of your tdeinit process, -which typically ends up in ~/.X.err or ~/.xsession-errors - -Happy debugging. |