This means that KDbg itself is not the debugger. Rather, it communicates with gdb, a command line debugger, by sending commands to it and receiving the output, such as variable values. The menu commands and mouse clicks are translated into gdb commands, and the output of gdb is translated into (more or less) visible information, such as structured variable contents.
The upshot of all this is that KDbg completely relies on the capabilities of the underlying command line debugger, gdb. KDbg can do no more than gdb can. For example, if you have a gdb that does not supports debugging of threaded programs, KDbg cannot, either (even though it offers a threads window).
If you want to debug a core dump, you must first load the executable that produced the core dump, then choose File|Core Dump from the menu. Now KDbg goes to the point in the program that caused the core dump.
You can now set breakpoints, using the Breakpoint menu, the right mouse button menu, or the breakpoint window.
You can also choose program specific settings that apply only to the currently loaded executable using File|Settings, in the Program Settings dialog.
You can run the program with arguments, set a working directory, or set environment variables. To do this, choose Execution|Arguments and specify your options in the Program Arguments dialog (before you start the program).
You can also attach to a program that is currently running. To do this, first load the executable file like above. Then choose Execution|Attach. Specify the process number and click OK. The running program is halted (not terminated), and the current point of execution is displayed in the source window.
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 it is
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 breakpoints in the breakpoints window. 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.
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 retrieves the values of variable.
KDbg's type recognition only works for libraries that are linked dynamically to the program being debugged.