GDB interface with simulator

Doug Evans
2003-11-14T17:07:28Z

=?iso-8859-1?q?Rama=20Singh?= writes:
> I wish to use my simulator as an
> independent process running on the same machine or on
> other machine.

Old versions of gdb had a file in gdb/gdbserver called low-sim.c.
IIRC, one would use this file in gdbserver and would link gdbserver
with libsim.a. You would then run this program on the host
you want to run your simulator on and use "target remote <simhost>:<port>"
in gdb to talk to gdbserver+sim.

Maybe you could grab that file from an old version of gdb (e.g. 5.3)
and try to make it work with the version of gdb you have.
[or maybe even just build gdbserver from 5.3 sources]

I don't recall why support for gdbserver+sim has been removed.
Maybe I'm mistaken and it's still there and I just can't see it.

> Is it posible to have gdb interact with a simulator
> over a socket? Also where can I find more information
> on this? I believe that implementing this will involve
> writing a gdb stub that will compile with the
> application and thus interact with the host gdb. Am I
> getting things correctly or is there some other
> possible way too?

The other way to go is to write a gdb stub and compile that
into the application. You will need the stub's i/o routines
to use the socket. sim/common/dv-sockser.c provides one
implementation of low level socket support that you need.
Some of the provided sims use this, so that should give you
enough examples to work from.

It does require having a working stub though.
One way to debug your stub would be to do both,
but now we're getting fancy, and you might want to
try just one of them for now.