Problem in using gdb 6.8 to step code in flash

Jiju George T
2008-05-14T12:49:14Z

Hi All,

I am trying to single step some code in a MIPS embedded target flash memory
using GDB 6.8 and our own GDB Server for MIPS target. I am doing below steps

1) Start GDB server which connects to the MIPS target through a JTAG
debugger probe and breaks the target at reset vector (0xBFC00000)
2) Start gdb and connect to GDB server. Gdb now connects to the target and
shows $pc as 0xBFC00000
3) Issue stepi command. But gdb never gets back control since GDB server
fails to set breakpoint on ROM.

When I repeat the same step using the sde-gdb provided by www.mips.com I
am able to do the step operation successfully.

I checked the difference between these two and fond out that the issue is
caused by the difference in the way sde-gdb and gdb 6.8 does step operation.
SDE GDB issues step(s) command to GDB server where as gdb 6.8 tries to set
breakpoint on next line and issue continue(c) command. Any idea on why the
two gdb variants behave differently for step operation using same GDB
server? How gdb decides what mechanism to be used for stepping operation?

Thanks,
Jiju George