The stub files provided with GDB implement the target side of the
communication protocol, and the GDB side is implemented in the
GDB source file remote.c
. Normally, you can simply allow
these subroutines to communicate, and ignore the details. (If you're
implementing your own stub file, you can still ignore the details: start
with one of the existing stub files. sparc-stub.c
is the best
organized, and therefore the easiest to read.)
To debug a program running on another machine (the debugging target machine), you must first arrange for all the usual prerequisites for the program to run by itself. For example, for a C program, you need:
crt0
. The startup routine may be supplied by
your hardware supplier, or you may have to write your own.
The next step is to arrange for your program to use a serial port to communicate with the machine where GDB is running (the host machine). In general terms, the scheme looks like this:
target remote
command
(see Specifying a Debugging Target).
On certain remote targets, you can use an auxiliary program
gdbserver
instead of linking a stub into your program.
See Using the gdbserver
program, for details.
The debugging stub is specific to the architecture of the remote
machine; for example, use sparc-stub.c
to debug programs on
SPARC boards.
These working remote stubs are distributed with GDB:
i386-stub.c
m68k-stub.c
sh-stub.c
sparc-stub.c
sparcl-stub.c
The README
file in the GDB distribution may list other
recently added stubs.