At the moment there is not much documentation available.
For the really brave there's documentation about how KDbg can understand types like QString.
The upper left pane shows the source code. Mostly, source code windows are opened automatically. To open a souce code window manually choose File|Open Source from the menu. You can switch the opened source code windows by choosing an open source file from the Window menu.
The lower left pane displays the backtrace (aka stack frames), i.e. the functions that the program has entered, but not left yet. The innermost frame (where the program currently executes) is shown at the top. Click on a stack frame to inspect the variables of that frame.
The upper right pane displays the local variables. Whenever the progam stops, KDbg displays the values of the local variables in this pane.
The lower right pane displays expressions of your choice (such expression is also called a watch). To add an expression, type it into the edit field and press Enter or click Add. To remove an expression, click on it (choose the root of the expression) and click Del.
The gearwheel in the toolbar indicates whether gdb is working, in which case it rotates. It rotates fast while KDbg wouldn't accept execution commands, and it rotates slowly while KDbg gets the variable values.
To run the program with arguments, set the working directory, or set environment variables, choose Execution|Arguments. See below for more details.
In the menu Execution you find the commands that you need to
run
the program, step through code, and to interrupt the program
(Break) while it is running. The important commands (Run
and all kinds of Step) are bound to function keys. For efficient
debugging I strongly recommend that you get used to using them.
The functions are not configurable, but perhaps you want
to contribute a bit of code that does it?
In the menu Breakpoint you find commands to set, clear, disable, and enable permanent and temporary breakpoints. You can display a list of active breakpoints. You can also set a breakpoint by clicking at the left end of the source line (using the left mouse button), and you can enable and disable a breakpoint by clicking it using the middle mouse button.
You can set a condition on a breakpoint (so that the program is only stopped if the condition is true) or set an ignore count (so that the program is not stopped the next n times that the breakpoint is hit). To do that, press the Conditional button and enter the condition and/or ignore count.
In the top edit box enter the arguments that shall be passed on to your program. Next time the program is started, the new arguments will be used.
In the edit box below you can specify the working directory for your program. The new working directory will be passed to gdb immediately, i.e. gdb will work with the new setting as soon as you press OK. Your program will use the new directory only when it is run the next time.
In the environment variables section type in an expression of the form VARIABLE=value to set the environment variable VARIABLE to the value value, and click Modify. To remove a variable, select it from the list below and click Remove. To change the value, edit the value in the edit field and click Modify. If you change the name of the variable and click Modify, you add a new variable! The new environment variables will be used by your program the next time it is run.
An important environment variable to set if you are using glibc2 on Linux is LD_BIND_NOW. It is very important that you set this variable to 1 for all your debugging sessions. If it is not set, gdb cannot step into and out of system functions that are imported from the shared libc and other libraries.
If you want to use a different terminal program to show the output of the program, specify it under Terminal for program output. The default setting is xterm -name kdbgio -title %T -e sh -c %C. In this entry, %T will be replaced by a title string, %C will be replaced by a Bourne shell script that loops infinitely so that the terminal window doesn't close. (No, it doesn't use CPU, it calls sleep 3600 in a loop :) An alternative for this setting could be konsole -nowelcome -name kdbgio -caption %T -e sh -c %C.
KDbg's type recognition only works for libraries that are linked dynamically to the program being debugged.