MAN page from Mandrake Other cross-arm-glibc-2011.10-1-mdv2012.0.i586.rpm


Section: GNU Development Tools (1)
Updated: 2 November 1993


gdbserver - Remote Server for the GNU Debugger 





GDBSERVER is a program that allows you to run GDB on a different machinethan the one which is running the program being debugged.

Usage (server (target) side):

First, you need to have a copy of the program you want to debug put ontothe target system. The program can be stripped to save space if needed, asGDBserver doesn't care about symbols. All symbol handling is taken care of bythe GDB running on the host system.

To use the server, you log on to the target system, and run the `gdbserver'program. You must tell it (a) how to communicate with GDB, (b) the name ofyour program, and (c) its arguments. The general syntax is:

        target> gdbserver COMM PROGRAM [ARGS ...]

For example, using a serial port, you might say:

        target> gdbserver /dev/com1 emacs foo.txt

This tells gdbserver to debug emacs with an argument of foo.txt, and tocommunicate with GDB via /dev/com1. Gdbserver now waits patiently for thehost GDB to communicate with it.

To use a TCP connection, you could say:

        target> gdbserver host:2345 emacs foo.txt

This says pretty much the same thing as the last example, except that we aregoing to communicate with the host GDB via TCP. The `host:2345' argument meansthat we are expecting to see a TCP connection from `host' to local TCP port2345. (Currently, the `host' part is ignored.) You can choose any number youwant for the port number as long as it does not conflict with any existing TCPports on the target system. This same port number must be used in the hostGDBs `target remote' command, which will be described shortly. Note that ifyou chose a port number that conflicts with another service, gdbserver willprint an error message and exit.

On some targets, gdbserver can also attach to running programs.This is accomplished via the --attach argument. The syntax is:

        target> gdbserver COMM --attach PID

PID is the process ID of a currently running process. It isn'tnecessary to point gdbserver at a binary for the running process.

Usage (host side):

You need an unstripped copy of the target program on your host system, sinceGDB needs to examine it's symbol tables and such. Start up GDB as you normallywould, with the target program as the first argument. (You may need to use the--baud option if the serial line is running at anything except 9600 baud.)Ie: `gdb TARGET-PROG', or `gdb --baud BAUD TARGET-PROG'. After that, the onlynew command you need to know about is `target remote'. It's argument is eithera device name (usually a serial device, like `/dev/ttyb'), or a HOST:PORTdescriptor. For example:

        (gdb) target remote /dev/ttyb

communicates with the server via serial line /dev/ttyb, and:

        (gdb) target remote the-target:2345

communicates via a TCP connection to port 2345 on host `the-target', whereyou previously started up gdbserver with the same port number. Note that forTCP connections, you must start up gdbserver prior to using the `target remote'command, otherwise you may get an error that looks something like`Connection refused'. 


You have to supply the name of the program to debugand the tty to communicate on; the remote GDB will do everything else.Any remaining arguments will be passed to the program verbatim. 


`gdb'entry ininfo;Using GDB: A Guide to the GNU Source-Level Debugger, Richard M. Stallman and Roland H. Pesch, July 1991. 


Copyright (c) 1993 Free Software Foundation, Inc.

Permission is granted to make and distribute verbatim copies ofthis manual provided the copyright notice and this permission noticeare preserved on all copies.

Permission is granted to copy and distribute modified versions of thismanual under the conditions for verbatim copying, provided that theentire resulting derived work is distributed under the terms of apermission notice identical to this one.

Permission is granted to copy and distribute translations of thismanual into another language, under the above conditions for modifiedversions, except that this permission notice may be included intranslations approved by the Free Software Foundation instead of inthe original English.




This document was created byman2html,using the manual pages.