Line 1... |
Line 1... |
This is gdb.info, produced by makeinfo version 4.8 from ./gdb.texinfo.
|
This is gdb.info, produced by makeinfo version 4.13 from ./gdb.texinfo.
|
|
|
INFO-DIR-SECTION Software development
|
INFO-DIR-SECTION Software development
|
START-INFO-DIR-ENTRY
|
START-INFO-DIR-ENTRY
|
* Gdb: (gdb). The GNU debugger.
|
* Gdb: (gdb). The GNU debugger.
|
END-INFO-DIR-ENTRY
|
END-INFO-DIR-ENTRY
|
Line 21... |
Line 21... |
developing GNU and promoting software freedom."
|
developing GNU and promoting software freedom."
|
|
|
This file documents the GNU debugger GDB.
|
This file documents the GNU debugger GDB.
|
|
|
This is the Ninth Edition, of `Debugging with GDB: the GNU
|
This is the Ninth Edition, of `Debugging with GDB: the GNU
|
Source-Level Debugger' for GDB (GDB) Version 7.2.
|
Source-Level Debugger' for GDB (GDB) Version 7.2-or32-1.0rc1.
|
|
|
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
|
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
|
2010 Free Software Foundation, Inc.
|
2010 Free Software Foundation, Inc.
|
|
|
Line 151... |
Line 151... |
(1) This is a way of removing one word from the stack, on machines
|
(1) This is a way of removing one word from the stack, on machines
|
where stacks grow downward in memory (most machines, nowadays). This
|
where stacks grow downward in memory (most machines, nowadays). This
|
assumes that the innermost stack frame is selected; setting `$sp' is
|
assumes that the innermost stack frame is selected; setting `$sp' is
|
not allowed when other stack frames are selected. To pop entire frames
|
not allowed when other stack frames are selected. To pop entire frames
|
off the stack, regardless of machine architecture, use `return'; see
|
off the stack, regardless of machine architecture, use `return'; see
|
*Note Returning from a Function: Returning.
|
*note Returning from a Function: Returning.
|
|
|
|
|
File: gdb.info, Node: Floating Point Hardware, Next: Vector Unit, Prev: Registers, Up: Data
|
File: gdb.info, Node: Floating Point Hardware, Next: Vector Unit, Prev: Registers, Up: Data
|
|
|
10.13 Floating Point Hardware
|
10.13 Floating Point Hardware
|
Line 211... |
Line 211... |
hardware, operating system, and process. Each value's purpose is
|
hardware, operating system, and process. Each value's purpose is
|
identified by an integer tag; the meanings are well-known but
|
identified by an integer tag; the meanings are well-known but
|
system-specific. Depending on the configuration and operating system
|
system-specific. Depending on the configuration and operating system
|
facilities, GDB may be able to show you this information. For remote
|
facilities, GDB may be able to show you this information. For remote
|
targets, this functionality may further depend on the remote stub's
|
targets, this functionality may further depend on the remote stub's
|
support of the `qXfer:auxv:read' packet, see *Note qXfer auxiliary
|
support of the `qXfer:auxv:read' packet, see *note qXfer auxiliary
|
vector read::.
|
vector read::.
|
|
|
`info auxv'
|
`info auxv'
|
Display the auxiliary vector of the inferior, which can be either a
|
Display the auxiliary vector of the inferior, which can be either a
|
live process or a core dump file. GDB prints each tag value
|
live process or a core dump file. GDB prints each tag value
|
Line 226... |
Line 226... |
in hexadecimal for an unrecognized tag.
|
in hexadecimal for an unrecognized tag.
|
|
|
On some targets, GDB can access operating-system-specific information
|
On some targets, GDB can access operating-system-specific information
|
and display it to user, without interpretation. For remote targets,
|
and display it to user, without interpretation. For remote targets,
|
this functionality depends on the remote stub's support of the
|
this functionality depends on the remote stub's support of the
|
`qXfer:osdata:read' packet, see *Note qXfer osdata read::.
|
`qXfer:osdata:read' packet, see *note qXfer osdata read::.
|
|
|
`info os'
|
`info os'
|
List the types of OS information available for the target. If the
|
List the types of OS information available for the target. If the
|
target does not return a list of possible types, this command will
|
target does not return a list of possible types, this command will
|
report an error.
|
report an error.
|
Line 749... |
Line 749... |
N, maximum number of finds
|
N, maximum number of finds
|
The maximum number of matches to print. The default is to print
|
The maximum number of matches to print. The default is to print
|
all finds.
|
all finds.
|
|
|
You can use strings as search values. Quote them with double-quotes
|
You can use strings as search values. Quote them with double-quotes
|
(`"'). The string value is copied into the search pattern byte by
|
(`"'). The string value is copied into the search pattern byte by byte,
|
byte, regardless of the endianness of the target and the size
|
regardless of the endianness of the target and the size specification.
|
specification.
|
|
|
|
The address of each match found is printed as well as a count of the
|
The address of each match found is printed as well as a count of the
|
number of matches found.
|
number of matches found.
|
|
|
The address of the last value found is stored in convenience variable
|
The address of the last value found is stored in convenience variable
|
Line 910... |
Line 909... |
later, and then provide a different definition after that. Thus, at
|
later, and then provide a different definition after that. Thus, at
|
different points in the program, a macro may have different
|
different points in the program, a macro may have different
|
definitions, or have no definition at all. If there is a current stack
|
definitions, or have no definition at all. If there is a current stack
|
frame, GDB uses the macros in scope at that frame's source code line.
|
frame, GDB uses the macros in scope at that frame's source code line.
|
Otherwise, GDB uses the macros in scope at the current listing location;
|
Otherwise, GDB uses the macros in scope at the current listing location;
|
see *Note List::.
|
see *note List::.
|
|
|
Whenever GDB evaluates an expression, it always expands any macro
|
Whenever GDB evaluates an expression, it always expands any macro
|
invocations present in the expression. GDB also provides the following
|
invocations present in the expression. GDB also provides the following
|
commands for working with macros explicitly.
|
commands for working with macros explicitly.
|
|
|
Line 1120... |
Line 1119... |
The tracepoint facility is currently available only for remote
|
The tracepoint facility is currently available only for remote
|
targets. *Note Targets::. In addition, your remote target must know
|
targets. *Note Targets::. In addition, your remote target must know
|
how to collect trace data. This functionality is implemented in the
|
how to collect trace data. This functionality is implemented in the
|
remote stub; however, none of the stubs distributed with GDB support
|
remote stub; however, none of the stubs distributed with GDB support
|
tracepoints as of this writing. The format of the remote packets used
|
tracepoints as of this writing. The format of the remote packets used
|
to implement tracepoints are described in *Note Tracepoint Packets::.
|
to implement tracepoints are described in *note Tracepoint Packets::.
|
|
|
It is also possible to get trace data from a file, in a manner
|
It is also possible to get trace data from a file, in a manner
|
reminiscent of corefiles; you specify the filename, and use `tfind' to
|
reminiscent of corefiles; you specify the filename, and use `tfind' to
|
search through the file. *Note Trace Files::, for more details.
|
search through the file. *Note Trace Files::, for more details.
|
|
|
Line 2222... |
Line 2221... |
overlay's instructions, appearing at the overlay's load address,
|
overlay's instructions, appearing at the overlay's load address,
|
not its mapped address. However, each overlay's instructions must
|
not its mapped address. However, each overlay's instructions must
|
be relocated and its symbols defined as if the overlay were at its
|
be relocated and its symbols defined as if the overlay were at its
|
mapped address. You can use GNU linker scripts to specify
|
mapped address. You can use GNU linker scripts to specify
|
different load and relocation addresses for pieces of your
|
different load and relocation addresses for pieces of your
|
program; see *Note Overlay Description: (ld.info)Overlay
|
program; see *note Overlay Description: (ld.info)Overlay
|
Description.
|
Description.
|
|
|
* The procedure for loading executable files onto your system must
|
* The procedure for loading executable files onto your system must
|
be able to load their contents into the larger address space as
|
be able to load their contents into the larger address space as
|
well as the instruction and data spaces.
|
well as the instruction and data spaces.
|
Line 2299... |
Line 2298... |
functions and variables at their load addresses.
|
functions and variables at their load addresses.
|
|
|
`overlay auto'
|
`overlay auto'
|
Enable "automatic" overlay debugging. In this mode, GDB consults
|
Enable "automatic" overlay debugging. In this mode, GDB consults
|
a data structure the overlay manager maintains in the inferior to
|
a data structure the overlay manager maintains in the inferior to
|
see which overlays are mapped. For details, see *Note Automatic
|
see which overlays are mapped. For details, see *note Automatic
|
Overlay Debugging::.
|
Overlay Debugging::.
|
|
|
`overlay load-target'
|
`overlay load-target'
|
`overlay load'
|
`overlay load'
|
Re-read the overlay table from the inferior. Normally, GDB
|
Re-read the overlay table from the inferior. Normally, GDB
|
Line 3115... |
Line 3114... |
|
|
You must specify `set overload-resolution off' in order to use an
|
You must specify `set overload-resolution off' in order to use an
|
explicit function signature to call an overloaded function, as in
|
explicit function signature to call an overloaded function, as in
|
p 'foo(char,int)'('x', 13)
|
p 'foo(char,int)'('x', 13)
|
|
|
The GDB command-completion facility can simplify this; see *Note
|
The GDB command-completion facility can simplify this; see *note
|
Command Completion: Completion.
|
Command Completion: Completion.
|
|
|
4. GDB understands variables declared as C++ references; you can use
|
4. GDB understands variables declared as C++ references; you can use
|
them in expressions just as you do in C++ source--they are
|
them in expressions just as you do in C++ source--they are
|
automatically dereferenced.
|
automatically dereferenced.
|
Line 3245... |
Line 3244... |
|
|
`set overload-resolution on'
|
`set overload-resolution on'
|
Enable overload resolution for C++ expression evaluation. The
|
Enable overload resolution for C++ expression evaluation. The
|
default is on. For overloaded functions, GDB evaluates the
|
default is on. For overloaded functions, GDB evaluates the
|
arguments and searches for a function whose signature matches the
|
arguments and searches for a function whose signature matches the
|
argument types, using the standard C++ conversion rules (see *Note
|
argument types, using the standard C++ conversion rules (see *note
|
C++ Expressions: C Plus Plus Expressions, for details). If it
|
C++ Expressions: C Plus Plus Expressions, for details). If it
|
cannot find a match, it emits a message.
|
cannot find a match, it emits a message.
|
|
|
`set overload-resolution off'
|
`set overload-resolution off'
|
Disable overload resolution for C++ expression evaluation. For
|
Disable overload resolution for C++ expression evaluation. For
|
Line 3296... |
Line 3295... |
point computations, error checking in decimal float operations ignores
|
point computations, error checking in decimal float operations ignores
|
underflow, overflow and divide by zero exceptions.
|
underflow, overflow and divide by zero exceptions.
|
|
|
In the PowerPC architecture, GDB provides a set of pseudo-registers
|
In the PowerPC architecture, GDB provides a set of pseudo-registers
|
to inspect `_Decimal128' values stored in floating point registers.
|
to inspect `_Decimal128' values stored in floating point registers.
|
See *Note PowerPC: PowerPC. for more details.
|
See *note PowerPC: PowerPC. for more details.
|
|
|
|
|
File: gdb.info, Node: D, Next: Objective-C, Prev: C, Up: Supported Languages
|
File: gdb.info, Node: D, Next: Objective-C, Prev: C, Up: Supported Languages
|
|
|
15.4.2 D
|
15.4.2 D
|
Line 3315... |
Line 3314... |
|
|
15.4.3 Objective-C
|
15.4.3 Objective-C
|
------------------
|
------------------
|
|
|
This section provides information about some commands and command
|
This section provides information about some commands and command
|
options that are useful for debugging Objective-C code. See also *Note
|
options that are useful for debugging Objective-C code. See also *note
|
info classes: Symbols, and *Note info selectors: Symbols, for a few
|
info classes: Symbols, and *note info selectors: Symbols, for a few
|
more commands specific to Objective-C support.
|
more commands specific to Objective-C support.
|
|
|
* Menu:
|
* Menu:
|
|
|
* Method Names in Commands::
|
* Method Names in Commands::
|
Line 3449... |
Line 3448... |
15.4.4.2 Fortran Defaults
|
15.4.4.2 Fortran Defaults
|
.........................
|
.........................
|
|
|
Fortran symbols are usually case-insensitive, so GDB by default uses
|
Fortran symbols are usually case-insensitive, so GDB by default uses
|
case-insensitive matches for Fortran symbols. You can change that with
|
case-insensitive matches for Fortran symbols. You can change that with
|
the `set case-insensitive' command, see *Note Symbols::, for the
|
the `set case-insensitive' command, see *note Symbols::, for the
|
details.
|
details.
|
|
|
|
|
File: gdb.info, Node: Special Fortran Commands, Prev: Fortran Defaults, Up: Fortran
|
File: gdb.info, Node: Special Fortran Commands, Prev: Fortran Defaults, Up: Fortran
|
|
|
Line 4421... |
Line 4420... |
|
|
`break LINESPEC task TASKNO'
|
`break LINESPEC task TASKNO'
|
`break LINESPEC task TASKNO if ...'
|
`break LINESPEC task TASKNO if ...'
|
These commands are like the `break ... thread ...' command (*note
|
These commands are like the `break ... thread ...' command (*note
|
Thread Stops::). LINESPEC specifies source lines, as described in
|
Thread Stops::). LINESPEC specifies source lines, as described in
|
*Note Specify Location::.
|
*note Specify Location::.
|
|
|
Use the qualifier `task TASKNO' with a breakpoint command to
|
Use the qualifier `task TASKNO' with a breakpoint command to
|
specify that you only want GDB to stop the program when a
|
specify that you only want GDB to stop the program when a
|
particular Ada task reaches this breakpoint. TASKNO is one of the
|
particular Ada task reaches this breakpoint. TASKNO is one of the
|
numeric task identifiers assigned by GDB, shown in the first
|
numeric task identifiers assigned by GDB, shown in the first
|
Line 4716... |
Line 4715... |
Symbol p1 is a local variable in register $ebx, length 4.
|
Symbol p1 is a local variable in register $ebx, length 4.
|
Symbol nline is a local variable in register $edx, length 4.
|
Symbol nline is a local variable in register $edx, length 4.
|
Symbol repeat is a local variable at frame offset -8, length 4.
|
Symbol repeat is a local variable at frame offset -8, length 4.
|
|
|
This command is especially useful for determining what data to
|
This command is especially useful for determining what data to
|
collect during a "trace experiment", see *Note collect: Tracepoint
|
collect during a "trace experiment", see *note collect: Tracepoint
|
Actions.
|
Actions.
|
|
|
`info source'
|
`info source'
|
Show information about the current source file--that is, the
|
Show information about the current source file--that is, the
|
source file for the function containing the current point of
|
source file for the function containing the current point of
|
Line 5007... |
Line 5006... |
|
|
`jump LINESPEC'
|
`jump LINESPEC'
|
`jump LOCATION'
|
`jump LOCATION'
|
Resume execution at line LINESPEC or at address given by LOCATION.
|
Resume execution at line LINESPEC or at address given by LOCATION.
|
Execution stops again immediately if there is a breakpoint there.
|
Execution stops again immediately if there is a breakpoint there.
|
*Note Specify Location::, for a description of the different
|
*Note Specify Location::, for a description of the different forms
|
forms of LINESPEC and LOCATION. It is common practice to use the
|
of LINESPEC and LOCATION. It is common practice to use the
|
`tbreak' command in conjunction with `jump'. *Note Setting
|
`tbreak' command in conjunction with `jump'. *Note Setting
|
Breakpoints: Set Breaks.
|
Breakpoints: Set Breaks.
|
|
|
The `jump' command does not change the current stack frame, or the
|
The `jump' command does not change the current stack frame, or the
|
stack pointer, or the contents of any memory location or any
|
stack pointer, or the contents of any memory location or any
|
Line 5787... |
Line 5786... |
* The executable contains a "build ID", a unique bit string that is
|
* The executable contains a "build ID", a unique bit string that is
|
also present in the corresponding debug info file. (This is
|
also present in the corresponding debug info file. (This is
|
supported only on some operating systems, notably those which use
|
supported only on some operating systems, notably those which use
|
the ELF format for binary files and the GNU Binutils.) For more
|
the ELF format for binary files and the GNU Binutils.) For more
|
details about this feature, see the description of the `--build-id'
|
details about this feature, see the description of the `--build-id'
|
command-line option in *Note Command Line Options:
|
command-line option in *note Command Line Options:
|
(ld.info)Options. The debug info file's name is not specified
|
(ld.info)Options. The debug info file's name is not specified
|
explicitly by the build ID, but can be computed from the build ID,
|
explicitly by the build ID, but can be computed from the build ID,
|
see below.
|
see below.
|
|
|
Depending on the way the debug info file is specified, GDB uses two
|
Depending on the way the debug info file is specified, GDB uses two
|
Line 6251... |
Line 6250... |
run
|
run
|
works; however, you cannot assume that a specific memory map,
|
works; however, you cannot assume that a specific memory map,
|
device drivers, or even basic I/O is available, although some
|
device drivers, or even basic I/O is available, although some
|
simulators do provide these. For info about any
|
simulators do provide these. For info about any
|
processor-specific simulator details, see the appropriate section
|
processor-specific simulator details, see the appropriate section
|
in *Note Embedded Processors: Embedded Processors.
|
in *note Embedded Processors: Embedded Processors.
|
|
|
|
|
Some configurations may include these targets as well:
|
Some configurations may include these targets as well:
|
|
|
`target nrom DEV'
|
`target nrom DEV'
|
Line 6606... |
Line 6605... |
multi-process mode. When the debugged program exits, or you detach
|
multi-process mode. When the debugged program exits, or you detach
|
from it, GDB stays connected to `gdbserver' even though no program is
|
from it, GDB stays connected to `gdbserver' even though no program is
|
running. The `run' and `attach' commands instruct `gdbserver' to run
|
running. The `run' and `attach' commands instruct `gdbserver' to run
|
or attach to a new program. The `run' command uses `set remote
|
or attach to a new program. The `run' command uses `set remote
|
exec-file' (*note set remote exec-file::) to select the program to run.
|
exec-file' (*note set remote exec-file::) to select the program to run.
|
Command line arguments are supported, except for wildcard expansion
|
Command line arguments are supported, except for wildcard expansion and
|
and I/O redirection (*note Arguments::).
|
I/O redirection (*note Arguments::).
|
|
|
To start `gdbserver' without supplying an initial command to run or
|
To start `gdbserver' without supplying an initial command to run or
|
process ID to attach, use the `--multi' command line option. Then you
|
process ID to attach, use the `--multi' command line option. Then you
|
can connect using `target extended-remote' and start the program you
|
can connect using `target extended-remote' and start the program you
|
want to debug.
|
want to debug.
|
Line 6790... |
Line 6789... |
20.4 Remote Configuration
|
20.4 Remote Configuration
|
=========================
|
=========================
|
|
|
This section documents the configuration options available when
|
This section documents the configuration options available when
|
debugging remote programs. For the options related to the File I/O
|
debugging remote programs. For the options related to the File I/O
|
extensions of the remote protocol, see *Note system-call-allowed:
|
extensions of the remote protocol, see *note system-call-allowed:
|
system.
|
system.
|
|
|
`set remoteaddresssize BITS'
|
`set remoteaddresssize BITS'
|
Set the maximum size of address in a memory packet to the specified
|
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 of bits. GDB will mask off the address bits above that
|
Line 6920... |
Line 6919... |
debugging stub. If you need to override the autodetection, you can use
|
debugging stub. If you need to override the autodetection, you can use
|
these commands to enable or disable individual packets. Each packet
|
these commands to enable or disable individual packets. Each packet
|
can be set to `on' (the remote target supports this packet), `off' (the
|
can be set to `on' (the remote target supports this packet), `off' (the
|
remote target does not support this packet), or `auto' (detect remote
|
remote target does not support this packet), or `auto' (detect remote
|
target support for this packet). They all default to `auto'. For more
|
target support for this packet). They all default to `auto'. For more
|
information about each packet, see *Note Remote Protocol::.
|
information about each packet, see *note Remote Protocol::.
|
|
|
During normal use, you should not have to use any of these commands.
|
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
|
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.
|
GDB. You may want to report the problem to the GDB developers.
|
|
|