There's more than one way to set a breakpoint:
If you can't set breakpoints, maybe the program is currently running. You can't set breakpoints while the program is running. Stop it first using Execution|Break. If you still can't set breakpoints, make sure that you have compiled and linked your program with debugging information enabled.
Use the Watch window.
Watchpoints are manipulated in the breakpoint list.
First load the executable using File|Executable, then specify the core dump using File|Core dump.
Start the program and let it run until it is in the endless loop. Then switch to KDbg and choose Execution|Break. You've just caught the nasty program in flagranti!
In the breakpoint list select the breakpoint; then click Conditional and specify the number of times to skip the breakpoint in the Ignore count field.
Select Execution|Arguments and specify the environment variables in the program arguments dialog.
Select Execution|Arguments and specify the working directory in the program arguments dialog.
Select Settings|This Program and switch to the Output tab. Select Only output, simple terminal emulation and click OK. Now restart the program (choose it from the list under File|Recent Executables). The program output goes now to the built-in output window and stdin is redirected to /dev/null.
You must do this for every new program that you debug.
Important: You should not do this if your program expects input from the terminal (usually stdin) or if its output requires nifty terminal emulation (more than carriage-return and line-feed). The built-in output window does not support input and terminal emulation.