Ralf Baechle wrote:
>
> On Mon, May 15, 2000 at 11:46:20AM -0700, Jun Sun wrote:
>
> > I am writing a gdbserver for linux/mips. The server can now talk with
> > the gdb client, and can run to completion if you press 'c'.
>
> > reg #29 ($29,sp) = 2147483120 (0x7ffffdf0)
>
> The value of sp looks sane, it a value near the absolute top of the stack
> at 0x80000000.
>
> > reg #37 ($64,pc) = 263607008 (0x0fb652e0)
>
> Also looks sane at first look, this value is in the typical address range
> where the dynamic linker gets mapped.
>
> Many of the registers in the dump you gave have a value of zero and that is
> worrying me much more. All the caller saved registers are zero, that
> smells.
>
I looked at the problem again. The registers are actually correct.
Most registers are zero becase that is the program start up time (in
exec()). I now can set a breakpoint and run until that breakpoint.
However, step or next or setting another breakpoint do not work. It
appears that gdbserver calls ptrace with PTRACE_SINGLESTEP option, which
is not implemented in the kernel I am using (it is v2.3.99-pre3). Is
this implemented in the latest version? If not, is it difficult to add
one? Or can we get around without it?
Jun