What is the state of processor at the time of debugging a code through
a debugger like gdb?
Is it that the debugger is in total control of processor? How does the
debugger control the speed/instructn executn rate of the processor?
What is the status of processor at the time of break-point?
GDB can be a software only debugger, or it can communicate with hardware assisted probes (JTAG or BDM). In that case debugger has full controll, and if your processor supports hardware break points you can stop the code executing from flas or eprom.