gdb: Remote Configuration
20.4 Remote Configuration
=========================
This section documents the configuration options available when
debugging remote programs. For the options related to the File I/O
extensions of the remote protocol, see system-call-allowed
system.
'set remoteaddresssize BITS'
Set the maximum size of address in a memory packet to the specified
number of bits. GDB will mask off the address bits above that
number, when it passes addresses to the remote target. The default
value is the number of bits in the target's address.
'show remoteaddresssize'
Show the current value of remote address size in bits.
'set serial baud N'
Set the baud rate for the remote serial I/O to N baud. The value
is used to set the speed of the serial port used for debugging
remote targets.
'show serial baud'
Show the current speed of the remote connection.
'set serial parity PARITY'
Set the parity for the remote serial I/O. Supported values of
PARITY are: 'even', 'none', and 'odd'. The default is 'none'.
'show serial parity'
Show the current parity of the serial port.
'set remotebreak'
If set to on, GDB sends a 'BREAK' signal to the remote when you
type 'Ctrl-c' to interrupt the program running on the remote. If
set to off, GDB sends the 'Ctrl-C' character instead. The default
is off, since most remote systems expect to see 'Ctrl-C' as the
interrupt signal.
'show remotebreak'
Show whether GDB sends 'BREAK' or 'Ctrl-C' to interrupt the remote
program.
'set remoteflow on'
'set remoteflow off'
Enable or disable hardware flow control ('RTS'/'CTS') on the serial
port used to communicate to the remote target.
'show remoteflow'
Show the current setting of hardware flow control.
'set remotelogbase BASE'
Set the base (a.k.a. radix) of logging serial protocol
communications to BASE. Supported values of BASE are: 'ascii',
'octal', and 'hex'. The default is 'ascii'.
'show remotelogbase'
Show the current setting of the radix for logging remote serial
protocol.
'set remotelogfile FILE'
Record remote serial communications on the named FILE. The default
is not to record at all.
'show remotelogfile'
Show the current setting of the file name on which to record the
serial communications.
'set remotetimeout NUM'
Set the timeout limit to wait for the remote target to respond to
NUM seconds. The default is 2 seconds.
'show remotetimeout'
Show the current number of seconds to wait for the remote target
responses.
'set remote hardware-watchpoint-limit LIMIT'
'set remote hardware-breakpoint-limit LIMIT'
Restrict GDB to using LIMIT remote hardware watchpoints or
breakpoints. The LIMIT can be set to 0 to disable hardware
watchpoints or breakpoints, and 'unlimited' for unlimited
watchpoints or breakpoints.
'show remote hardware-watchpoint-limit'
'show remote hardware-breakpoint-limit'
Show the current limit for the number of hardware watchpoints or
breakpoints that GDB can use.
'set remote hardware-watchpoint-length-limit LIMIT'
Restrict GDB to using LIMIT bytes for the maximum length of a
remote hardware watchpoint. A LIMIT of 0 disables hardware
watchpoints and 'unlimited' allows watchpoints of any length.
'show remote hardware-watchpoint-length-limit'
Show the current limit (in bytes) of the maximum length of a remote
hardware watchpoint.
'set remote exec-file FILENAME'
'show remote exec-file'
Select the file used for 'run' with 'target extended-remote'. This
should be set to a filename valid on the target system. If it is
not set, the target will use a default filename (e.g. the last
program run).
'set remote interrupt-sequence'
Allow the user to select one of 'Ctrl-C', a 'BREAK' or 'BREAK-g' as
the sequence to the remote target in order to interrupt the
execution. 'Ctrl-C' is a default. Some system prefers 'BREAK'
which is high level of serial line for some certain time. Linux
kernel prefers 'BREAK-g', a.k.a Magic SysRq g. It is 'BREAK'
signal followed by character 'g'.
'show interrupt-sequence'
Show which of 'Ctrl-C', 'BREAK' or 'BREAK-g' is sent by GDB to
interrupt the remote program. 'BREAK-g' is BREAK signal followed
by 'g' and also known as Magic SysRq g.
'set remote interrupt-on-connect'
Specify whether interrupt-sequence is sent to remote target when
GDB connects to it. This is mostly needed when you debug Linux
kernel. Linux kernel expects 'BREAK' followed by 'g' which is
known as Magic SysRq g in order to connect GDB.
'show interrupt-on-connect'
Show whether interrupt-sequence is sent to remote target when GDB
connects to it.
'set tcp auto-retry on'
Enable auto-retry for remote TCP connections. This is useful if
the remote debugging agent is launched in parallel with GDB; there
is a race condition because the agent may not become ready to
accept the connection before GDB attempts to connect. When
auto-retry is enabled, if the initial attempt to connect fails, GDB
reattempts to establish the connection using the timeout specified
by 'set tcp connect-timeout'.
'set tcp auto-retry off'
Do not auto-retry failed TCP connections.
'show tcp auto-retry'
Show the current auto-retry setting.
'set tcp connect-timeout SECONDS'
'set tcp connect-timeout unlimited'
Set the timeout for establishing a TCP connection to the remote
target to SECONDS. The timeout affects both polling to retry
failed connections (enabled by 'set tcp auto-retry on') and waiting
for connections that are merely slow to complete, and represents an
approximate cumulative value. If SECONDS is 'unlimited', there is
no timeout and GDB will keep attempting to establish a connection
forever, unless interrupted with 'Ctrl-c'. The default is 15
seconds.
'show tcp connect-timeout'
Show the current connection timeout setting.
The GDB remote protocol autodetects the packets supported by your
debugging stub. If you need to override the autodetection, you can use
these commands to enable or disable individual packets. Each packet can
be set to 'on' (the remote target supports this packet), 'off' (the
remote target does not support this packet), or 'auto' (detect remote
target support for this packet). They all default to 'auto'. For more
information about each packet, see Remote Protocol.
During normal use, you should not have to use any of these commands.
If you do, that may be a bug in your remote debugging stub, or a bug in
GDB. You may want to report the problem to the GDB developers.
For each packet NAME, the command to enable or disable the packet is
'set remote NAME-packet'. The available settings are:
Command Name Remote Packet Related Features
'fetch-register' 'p' 'info registers'
'set-register' 'P' 'set'
'binary-download' 'X' 'load', 'set'
'read-aux-vector' 'qXfer:auxv:read' 'info auxv'
'symbol-lookup' 'qSymbol' Detecting
multiple threads
'attach' 'vAttach' 'attach'
'verbose-resume' 'vCont' Stepping or
resuming
multiple threads
'run' 'vRun' 'run'
'software-breakpoint''Z0' 'break'
'hardware-breakpoint''Z1' 'hbreak'
'write-watchpoint' 'Z2' 'watch'
'read-watchpoint' 'Z3' 'rwatch'
'access-watchpoint' 'Z4' 'awatch'
'pid-to-exec-file' 'qXfer:exec-file:read' 'attach', 'run'
'target-features' 'qXfer:features:read' 'set
architecture'
'library-info' 'qXfer:libraries:read' 'info
sharedlibrary'
'memory-map' 'qXfer:memory-map:read' 'info mem'
'read-sdata-object' 'qXfer:sdata:read' 'print $_sdata'
'read-spu-object' 'qXfer:spu:read' 'info spu'
'write-spu-object' 'qXfer:spu:write' 'info spu'
'read-siginfo-object''qXfer:siginfo:read' 'print
$_siginfo'
'write-siginfo-object''qXfer:siginfo:write' 'set $_siginfo'
'threads' 'qXfer:threads:read' 'info threads'
'get-thread-local- 'qGetTLSAddr' Displaying
storage-address' '__thread'
variables
'get-thread-information-block-address''qGetTIBAddr'Display
MS-Windows
Thread
Information
Block.
'search-memory' 'qSearch:memory' 'find'
'supported-packets' 'qSupported' Remote
communications
parameters
'catch-syscalls' 'QCatchSyscalls' 'catch syscall'
'pass-signals' 'QPassSignals' 'handle SIGNAL'
'program-signals' 'QProgramSignals' 'handle SIGNAL'
'hostio-close-packet''vFile:close' 'remote get',
'remote put'
'hostio-open-packet' 'vFile:open' 'remote get',
'remote put'
'hostio-pread-packet''vFile:pread' 'remote get',
'remote put'
'hostio-pwrite-packet''vFile:pwrite' 'remote get',
'remote put'
'hostio-unlink-packet''vFile:unlink' 'remote delete'
'hostio-readlink-packet''vFile:readlink' Host I/O
'hostio-fstat-packet''vFile:fstat' Host I/O
'hostio-setfs-packet''vFile:setfs' Host I/O
'noack-packet' 'QStartNoAckMode' Packet
acknowledgment
'osdata' 'qXfer:osdata:read' 'info os'
'query-attached' 'qAttached' Querying remote
process attach
state.
'trace-buffer-size' 'QTBuffer:size' 'set
trace-buffer-size'
'trace-status' 'qTStatus' 'tstatus'
'traceframe-info' 'qXfer:traceframe-info:read'Traceframe info
'install-in-trace' 'InstallInTrace' Install
tracepoint in
tracing
'disable-randomization''QDisableRandomization''set
disable-randomization'
'startup-with-shell' 'QStartupWithShell' 'set
startup-with-shell'
'environment-hex-encoded''QEnvironmentHexEncoded''set
environment'
'environment-unset' 'QEnvironmentUnset' 'unset
environment'
'environment-reset' 'QEnvironmentReset' 'Reset the
inferior
environment
(i.e., unset
user-set
variables)'
'set-working-dir' 'QSetWorkingDir' 'set cwd'
'conditional-breakpoints-packet''Z0 and Z1' 'Support for
target-side
breakpoint
condition
evaluation'
'multiprocess-extensions''multiprocess Debug multiple
extensions' processes and
remote process
PID awareness
'swbreak-feature' 'swbreak stop reason' 'break'
'hwbreak-feature' 'hwbreak stop reason' 'hbreak'
'fork-event-feature' 'fork stop reason' 'fork'
'vfork-event-feature''vfork stop reason' 'vfork'
'exec-event-feature' 'exec stop reason' 'exec'
'thread-events' 'QThreadEvents' Tracking thread
lifetime.
'no-resumed-stop-reply''no resumed thread Tracking thread
left stop reply' lifetime.