Debugging with GDB

Node:NetWare, Next:remote stub, Previous:Server, Up:Remote Debugging

### Using the `gdbserve.nlm` program

`gdbserve.nlm` is a control program for NetWare systems, which allows you to connect your program with a remote GDB via `target remote`. GDB and `gdbserve.nlm` communicate via a serial line, using the standard GDB remote serial protocol.

On the target machine,
  you need to have a copy of the program you want to debug. `gdbserve.nlm` does not need your program's symbol table, so you can strip the program if necessary to save space. GDB on the host system does all the symbol handling.

  To use the server, you must tell it how to communicate with GDB; the name of your program; and the arguments for your program. The syntax is:

                load gdbserve [ BOARD=board ] [ PORT=port ]
                              [ BAUD=baud ] program [ args ... ]

  board and port specify the serial line; baud specifies the baud rate used by the connection. port and node default to 0, baud defaults to 9600bps.

  For example, to debug Emacs with the argument `foo.txt`and communicate with GDB over serial port number 2 or board 1 using a 19200bps connection:

                load gdbserve BOARD=1 PORT=2 BAUD=19200 emacs foo.txt

On the GDB host machine,
  you need an unstripped copy of your program, since GDB needs symbols and debugging information. Start up GDB as usual, using the name of the local copy of your program as the first argument. (You may also need the `--baud` option if the serial line is running at anything other than 9600bps. After that, use `target remote` to establish communications with `gdbserve.nlm`. Its argument is a device name (usually a serial device, like `/dev/ttyb`). For example:

                (gdb) target remote /dev/ttyb

  communications with the server via serial line `/dev/ttyb`.