VxWorks - Debugging with GDB
Description: Debugging with GDB

Up: Embedded OS

#### 21.2.1 Using gdb with VxWorks

`target vxworks` machinename
  A VxWorks system, attached via TCP/IP. The argument machinename is the target system's machine name or IP address.

On VxWorks, `load` links filename dynamically on the current target system as well as adding its symbols in gdb.

gdb enables developers to spawn and debug tasks running on networked VxWorks targets from a Unix host. Already-running tasks spawned from the VxWorks shell can also be debugged. gdb uses code that runs on both the Unix host and on the VxWorks target. The program `gdb` is installed and executed on the Unix host. (It may be installed with the name `vxgdb`, to distinguish it from a gdb for debugging programs on the host itself.)

`VxWorks-timeout` args
  All VxWorks-based targets now support the option `vxworks-timeout`. This option is set by the user, and args represents the number of seconds gdb waits for responses to rpc's. You might use this if your VxWorks target is a slow software simulator or is on the far side of a thin network line.

The following information on connecting to VxWorks was current when this manual was produced; newer releases of VxWorks may use revised procedures.

To use gdb with VxWorks, you must rebuild your VxWorks kernel to include the remote debugging interface routines in the VxWorks library `rdb.a`. To do this, define `INCLUDE_RDB` in the VxWorks configuration file `configAll.h` and rebuild your VxWorks kernel. The resulting kernel contains `rdb.a`, and spawns the source debugging task `tRdbTask` when VxWorks is booted. For more information on configuring and remaking VxWorks, see the manufacturer's manual.

Once you have included `rdb.a` in your VxWorks system image and set your Unix execution search path to find gdb, you are ready to run gdb. From your Unix host, run `gdb` (or `vxgdb`, depending on your installation).

gdb comes up showing the prompt:

         (vxgdb)