gdb: Target Commands
19.2 Commands for Managing Targets
==================================
'target TYPE PARAMETERS'
Connects the GDB host environment to a target machine or process.
A target is typically a protocol for talking to debugging
facilities. You use the argument TYPE to specify the type or
protocol of the target machine.
Further PARAMETERS are interpreted by the target protocol, but
typically include things like device names or host names to connect
with, process numbers, and baud rates.
The 'target' command does not repeat if you press <RET> again after
executing the command.
'help target'
Displays the names of all targets available. To display targets
currently selected, use either 'info target' or 'info files' (
Commands to Specify Files Files.).
'help target NAME'
Describe a particular target, including any parameters necessary to
select it.
'set gnutarget ARGS'
GDB uses its own library BFD to read your files. GDB knows whether
it is reading an "executable", a "core", or a ".o" file; however,
you can specify the file format with the 'set gnutarget' command.
Unlike most 'target' commands, with 'gnutarget' the 'target' refers
to a program, not a machine.
_Warning:_ To specify a file format with 'set gnutarget', you
must know the actual BFD name.
Commands to Specify Files Files.
'show gnutarget'
Use the 'show gnutarget' command to display what file format
'gnutarget' is set to read. If you have not set 'gnutarget', GDB
will determine the file format for each file automatically, and
'show gnutarget' displays 'The current BFD target is "auto"'.
Here are some common targets (available, or not, depending on the GDB
configuration):
'target exec PROGRAM'
An executable file. 'target exec PROGRAM' is the same as
'exec-file PROGRAM'.
'target core FILENAME'
A core dump file. 'target core FILENAME' is the same as 'core-file
FILENAME'.
'target remote MEDIUM'
A remote system connected to GDB via a serial line or network
connection. This command tells GDB to use its own remote protocol
over MEDIUM for debugging. Remote Debugging.
For example, if you have a board connected to '/dev/ttya' on the
machine running GDB, you could say:
target remote /dev/ttya
'target remote' supports the 'load' command. This is only useful
if you have some other way of getting the stub to the target
system, and you can put it somewhere in memory where it won't get
clobbered by the download.
'target sim [SIMARGS] ...'
Builtin CPU simulator. GDB includes simulators for most
architectures. In general,
target sim
load
run
works; however, you cannot assume that a specific memory map,
device drivers, or even basic I/O is available, although some
simulators do provide these. For info about any processor-specific
simulator details, see the appropriate section in Embedded
Processors Embedded Processors.
'target native'
Setup for local/native process debugging. Useful to make the 'run'
command spawn native processes (likewise 'attach', etc.) even when
'set auto-connect-native-target' is 'off' (set
auto-connect-native-target).
Different targets are available on different configurations of GDB;
your configuration may have more or fewer targets.
Many remote targets require you to download the executable's code
once you've successfully established a connection. You may wish to
control various aspects of this process.
'set hash'
This command controls whether a hash mark '#' is displayed while
downloading a file to the remote monitor. If on, a hash mark is
displayed after each S-record is successfully downloaded to the
monitor.
'show hash'
Show the current status of displaying the hash mark.
'set debug monitor'
Enable or disable display of communications messages between GDB
and the remote monitor.
'show debug monitor'
Show the current status of displaying communications between GDB
and the remote monitor.
'load FILENAME OFFSET'
Depending on what remote debugging facilities are configured into
GDB, the 'load' command may be available. Where it exists, it is
meant to make FILENAME (an executable) available for debugging on
the remote system--by downloading, or dynamic linking, for example.
'load' also records the FILENAME symbol table in GDB, like the
'add-symbol-file' command.
If your GDB does not have a 'load' command, attempting to execute
it gets the error message "'You can't do that when your target is
...'"
The file is loaded at whatever address is specified in the
executable. For some object file formats, you can specify the load
address when you link the program; for other formats, like a.out,
the object file format specifies a fixed address.
It is also possible to tell GDB to load the executable file at a
specific offset described by the optional argument OFFSET. When
OFFSET is provided, FILENAME must also be provided.
Depending on the remote side capabilities, GDB may be able to load
programs into flash memory.
'load' does not repeat if you press <RET> again after using it.
'flash-erase'
Erases all known flash memory regions on the target.