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 202... |
Line 202... |
as an alternative interrupt key sequence, which can be used to
|
as an alternative interrupt key sequence, which can be used to
|
interrupt the debuggee even if it ignores `C-c'.
|
interrupt the debuggee even if it ignores `C-c'.
|
|
|
There are various additional Cygwin-specific commands, described in
|
There are various additional Cygwin-specific commands, described in
|
this section. Working with DLLs that have no debugging symbols is
|
this section. Working with DLLs that have no debugging symbols is
|
described in *Note Non-debug DLL Symbols::.
|
described in *note Non-debug DLL Symbols::.
|
|
|
`info w32'
|
`info w32'
|
This is a prefix of MS Windows-specific commands which print
|
This is a prefix of MS Windows-specific commands which print
|
information about the target system and important OS structures.
|
information about the target system and important OS structures.
|
|
|
Line 305... |
Line 305... |
Note that before the debugged program has started execution, no DLLs
|
Note that before the debugged program has started execution, no DLLs
|
will have been loaded. The easiest way around this problem is simply to
|
will have been loaded. The easiest way around this problem is simply to
|
start the program -- either by setting a breakpoint or letting the
|
start the program -- either by setting a breakpoint or letting the
|
program run once to completion. It is also possible to force GDB to
|
program run once to completion. It is also possible to force GDB to
|
load a particular DLL before starting the executable -- see the shared
|
load a particular DLL before starting the executable -- see the shared
|
library information in *Note Files::, or the `dll-symbols' command in
|
library information in *note Files::, or the `dll-symbols' command in
|
*Note Cygwin Native::. Currently, explicitly loading symbols from a
|
*note Cygwin Native::. Currently, explicitly loading symbols from a
|
DLL with no debugging information will cause the symbol names to be
|
DLL with no debugging information will cause the symbol names to be
|
duplicated in GDB's lookup table, which may adversely affect symbol
|
duplicated in GDB's lookup table, which may adversely affect symbol
|
lookup performance.
|
lookup performance.
|
|
|
21.1.5.2 DLL Name Prefixes
|
21.1.5.2 DLL Name Prefixes
|
Line 1165... |
Line 1165... |
File: gdb.info, Node: OpenRISC 1000, Next: PA, Prev: MIPS Embedded, Up: Embedded Processors
|
File: gdb.info, Node: OpenRISC 1000, Next: PA, Prev: MIPS Embedded, Up: Embedded Processors
|
|
|
21.3.6 OpenRISC 1000
|
21.3.6 OpenRISC 1000
|
--------------------
|
--------------------
|
|
|
See OR1k Architecture document (`www.opencores.org') for more
|
Previous versions of GDB supported remote connection via a proprietary
|
information about platform and commands.
|
JTAG protocol using the `target jtag' command. Support for this has now
|
|
been dropped.
|
|
|
|
`target remote'
|
|
This is now the only way to connect to a remote OpenRISC 1000
|
|
target. This is supported by "Or1ksim", the OpenRISC 1000
|
|
architectural simulator, and Verilator and Icarus Verilog
|
|
simulations. "Remote serial protocol" servers are also available
|
|
to drive various hardware implementations via JTAG. Connects to
|
|
remote JTAG server.
|
|
|
|
Example: `target remote :51000'
|
|
|
|
`target sim'
|
|
"Or1ksim", the OpenRISC 1000 architectural simulator is now
|
|
incorporated within GDB as a simulator target. It is started in
|
|
quiet mode with 8M of memory starting at address 0. It is possible
|
|
to pass arguments to extend this configuration using the `-f'
|
|
option to `target sim'. However for more complex use, the user is
|
|
advised to run "Or1ksim" separately, with its own configuration
|
|
file, and connect using `target remote'
|
|
|
`target jtag jtag://HOST:PORT'
|
Example: `target sim'
|
Connects to remote JTAG server. JTAG remote server can be either
|
|
an or1ksim or JTAG server, connected via parallel port to the
|
|
board.
|
|
|
|
Example: `target jtag jtag://localhost:9999'
|
|
|
|
`or1ksim COMMAND'
|
|
If connected to `or1ksim' OpenRISC 1000 Architectural Simulator,
|
|
proprietary commands can be executed.
|
|
|
|
`info or1k spr'
|
`info or1k spr'
|
Displays spr groups.
|
Displays groups.
|
|
|
`info or1k spr GROUP'
|
`info spr GROUP'
|
`info or1k spr GROUPNO'
|
`info spr GROUPNO'
|
Displays register names in selected group.
|
Displays register names in selected group.
|
|
|
`info or1k spr GROUP REGISTER'
|
`info spr GROUP REGISTER'
|
`info or1k spr REGISTER'
|
`info spr REGISTER'
|
`info or1k spr GROUPNO REGISTERNO'
|
`info spr GROUPNO REGISTERNO'
|
`info or1k spr REGISTERNO'
|
`info spr REGISTERNO'
|
Shows information about specified spr register.
|
Shows information about specified spr register.
|
|
|
|
Example: `info spr DRR'
|
|
|
|
`DEBUG.DRR = SPR6_21 = 0 (0x0)'
|
|
|
`spr GROUP REGISTER VALUE'
|
`spr GROUP REGISTER VALUE'
|
`spr REGISTER VALUE'
|
`spr REGISTER VALUE'
|
`spr GROUPNO REGISTERNO VALUE'
|
`spr GROUPNO REGISTERNO VALUE'
|
`spr REGISTERNO VALUE'
|
`spr REGISTERNO VALUE'
|
Writes VALUE to specified spr register.
|
Writes VALUE to specified spr register.
|
|
|
Some implementations of OpenRISC 1000 Architecture also have
|
Example: spr PICMR 0x24
|
hardware trace. It is very similar to GDB trace, except it does not
|
|
interfere with normal program execution and is thus much faster.
|
|
Hardware breakpoints/watchpoint triggers can be set using:
|
|
`$LEA/$LDATA'
|
|
Load effective address/data
|
|
|
|
`$SEA/$SDATA'
|
|
Store effective address/data
|
|
|
|
`$AEA/$ADATA'
|
|
Access effective address ($SEA or $LEA) or data ($SDATA/$LDATA)
|
|
|
|
`$FETCH'
|
|
Fetch data
|
|
|
|
When triggered, it can capture low level data, like: `PC', `LSEA',
|
|
`LDATA', `SDATA', `READSPR', `WRITESPR', `INSTR'.
|
|
|
|
`htrace' commands:
|
|
`hwatch CONDITIONAL'
|
|
Set hardware watchpoint on combination of Load/Store Effective
|
|
Address(es) or Data. For example:
|
|
|
|
`hwatch ($LEA == my_var) && ($LDATA < 50) || ($SEA == my_var) &&
|
|
($SDATA >= 50)'
|
|
|
|
`hwatch ($LEA == my_var) && ($LDATA < 50) || ($SEA == my_var) &&
|
|
($SDATA >= 50)'
|
|
|
|
`htrace info'
|
The use of `info' and `spr' commands is anachronistic. At some time
|
Display information about current HW trace configuration.
|
in the future they will be replaced by `show spr' and `set spr'.
|
|
|
`htrace trigger CONDITIONAL'
|
There are some known problems with the current implementation
|
Set starting criteria for HW trace.
|
|
|
|
`htrace qualifier CONDITIONAL'
|
1. Some OpenRISC 1000 targets support hardware breakpoints and
|
Set acquisition qualifier for HW trace.
|
watchpoints. Consult the target documentation for details. GDB
|
|
is not perfect in handling of watchpoints. It is possible to
|
|
allocate hardware watchpoints and not discover until running that
|
|
sufficient watchpoints are not available. It is also possible
|
|
that GDB will report watchpoints being hit spuriously. This can
|
|
be down to the assembly code having additional memory accesses
|
|
that are not obviously reflected in the source code.
|
|
|
|
2. The OpenRISC 1000 architecture has evolved since the first port of
|
|
GDB. In particular the structure of the Unit Present register has
|
|
changed and the CPU Configuration register has been added. The
|
|
port of GDB version 7.2-or32-1.0rc1 uses the _current_
|
|
specification of the OpenRISC 1000.
|
|
|
`htrace stop CONDITIONAL'
|
|
Set HW trace stopping criteria.
|
|
|
|
`htrace record [DATA]*'
|
|
Selects the data to be recorded, when qualifier is met and HW
|
|
trace was triggered.
|
|
|
|
`htrace enable'
|
|
`htrace disable'
|
|
Enables/disables the HW trace.
|
|
|
|
`htrace rewind [FILENAME]'
|
|
Clears currently recorded trace data.
|
|
|
|
If filename is specified, new trace file is made and any newly
|
|
collected data will be written there.
|
|
|
|
`htrace print [START [LEN]]'
|
|
Prints trace buffer, using current record configuration.
|
|
|
|
`htrace mode continuous'
|
|
Set continuous trace mode.
|
|
|
|
`htrace mode suspend'
|
|
Set suspend trace mode.
|
|
|
|
|
Reports of bugs are much welcomed. Please report problems through the
|
|
OpenRISC tracker at downloads (http://opencores.org/openrisc).
|
|
|
|
|
File: gdb.info, Node: PowerPC Embedded, Next: Sparclet, Prev: PA, Up: Embedded Processors
|
File: gdb.info, Node: PowerPC Embedded, Next: Sparclet, Prev: PA, Up: Embedded Processors
|
|
|
21.3.7 PowerPC Embedded
|
21.3.7 PowerPC Embedded
|
Line 1813... |
Line 1788... |
|
|
`set spu auto-flush-cache ARG'
|
`set spu auto-flush-cache ARG'
|
Set whether to automatically flush the software-managed cache.
|
Set whether to automatically flush the software-managed cache.
|
When set to `on', GDB will automatically cause the SPE
|
When set to `on', GDB will automatically cause the SPE
|
software-managed cache to be flushed whenever SPE execution stops.
|
software-managed cache to be flushed whenever SPE execution stops.
|
This provides a consistent view of PowerPC memory that is
|
This provides a consistent view of PowerPC memory that is accessed
|
accessed via the cache. If an application does not use the
|
via the cache. If an application does not use the
|
software-managed cache, this option has no effect.
|
software-managed cache, this option has no effect.
|
|
|
`show spu auto-flush-cache'
|
`show spu auto-flush-cache'
|
Show whether to automatically flush the software-managed cache.
|
Show whether to automatically flush the software-managed cache.
|
|
|
Line 1847... |
Line 1822... |
|
|
22 Controlling GDB
|
22 Controlling GDB
|
******************
|
******************
|
|
|
You can alter the way GDB interacts with you by using the `set'
|
You can alter the way GDB interacts with you by using the `set'
|
command. For commands controlling how GDB displays data, see *Note
|
command. For commands controlling how GDB displays data, see *note
|
Print Settings: Print Settings. Other settings are described here.
|
Print Settings: Print Settings. Other settings are described here.
|
|
|
* Menu:
|
* Menu:
|
|
|
* Prompt:: Prompt
|
* Prompt:: Prompt
|
Line 2182... |
Line 2157... |
makes GDB tell you when it does a lengthy internal operation, so you
|
makes GDB tell you when it does a lengthy internal operation, so you
|
will not think it has crashed.
|
will not think it has crashed.
|
|
|
Currently, the messages controlled by `set verbose' are those which
|
Currently, the messages controlled by `set verbose' are those which
|
announce that the symbol table for a source file is being read; see
|
announce that the symbol table for a source file is being read; see
|
`symbol-file' in *Note Commands to Specify Files: Files.
|
`symbol-file' in *note Commands to Specify Files: Files.
|
|
|
`set verbose on'
|
`set verbose on'
|
Enables GDB output of certain informational messages.
|
Enables GDB output of certain informational messages.
|
|
|
`set verbose off'
|
`set verbose off'
|
Line 2589... |
Line 2564... |
The value of `max-user-call-depth' controls how many recursion
|
The value of `max-user-call-depth' controls how many recursion
|
levels are allowed in user-defined commands before GDB suspects an
|
levels are allowed in user-defined commands before GDB suspects an
|
infinite recursion and aborts the command.
|
infinite recursion and aborts the command.
|
|
|
In addition to the above commands, user-defined commands frequently
|
In addition to the above commands, user-defined commands frequently
|
use control flow commands, described in *Note Command Files::.
|
use control flow commands, described in *note Command Files::.
|
|
|
When user-defined commands are executed, the commands of the
|
When user-defined commands are executed, the commands of the
|
definition are not printed. An error in any command stops execution of
|
definition are not printed. An error in any command stops execution of
|
the user-defined command.
|
the user-defined command.
|
|
|
Line 3026... |
Line 3001... |
A string containing the python directory (*note Python::).
|
A string containing the python directory (*note Python::).
|
|
|
-- Function: execute command [from_tty] [to_string]
|
-- Function: execute command [from_tty] [to_string]
|
Evaluate COMMAND, a string, as a GDB CLI command. If a GDB
|
Evaluate COMMAND, a string, as a GDB CLI command. If a GDB
|
exception happens while COMMAND runs, it is translated as
|
exception happens while COMMAND runs, it is translated as
|
described in *Note Exception Handling: Exception Handling.
|
described in *note Exception Handling: Exception Handling.
|
|
|
FROM_TTY specifies whether GDB ought to consider this command as
|
FROM_TTY specifies whether GDB ought to consider this command as
|
having originated from the user invoking it interactively. It
|
having originated from the user invoking it interactively. It
|
must be a boolean value. If omitted, it defaults to `False'.
|
must be a boolean value. If omitted, it defaults to `False'.
|
|
|
Line 3263... |
Line 3238... |
When a lazy string is printed, the GDB encoding machinery is
|
When a lazy string is printed, the GDB encoding machinery is
|
used to convert the string during printing. If the optional
|
used to convert the string during printing. If the optional
|
ENCODING argument is not provided, or is an empty string, GDB
|
ENCODING argument is not provided, or is an empty string, GDB
|
will automatically select the encoding most suitable for the
|
will automatically select the encoding most suitable for the
|
string type. For further information on encoding in GDB
|
string type. For further information on encoding in GDB
|
please see *Note Character Sets::.
|
please see *note Character Sets::.
|
|
|
If the optional LENGTH argument is given, the string will be
|
If the optional LENGTH argument is given, the string will be
|
fetched and encoded to the length of characters specified. If
|
fetched and encoded to the length of characters specified. If
|
the LENGTH argument is not provided, the string will be
|
the LENGTH argument is not provided, the string will be
|
fetched and encoded until a null of appropriate width is
|
fetched and encoded until a null of appropriate width is
|
Line 3855... |
Line 3830... |
|
|
-- Method on Command: dont_repeat
|
-- Method on Command: dont_repeat
|
By default, a GDB command is repeated when the user enters a blank
|
By default, a GDB command is repeated when the user enters a blank
|
line at the command prompt. A command can suppress this behavior
|
line at the command prompt. A command can suppress this behavior
|
by invoking the `dont_repeat' method. This is similar to the user
|
by invoking the `dont_repeat' method. This is similar to the user
|
command `dont-repeat', see *Note dont-repeat: Define.
|
command `dont-repeat', see *note dont-repeat: Define.
|
|
|
-- Method on Command: invoke argument from_tty
|
-- Method on Command: invoke argument from_tty
|
This method is called by GDB when this command is invoked.
|
This method is called by GDB when this command is invoked.
|
|
|
ARGUMENT is a string. It is the argument to the command, after
|
ARGUMENT is a string. It is the argument to the command, after
|
Line 4355... |
Line 4330... |
23.2.2.16 Accessing frame blocks from Python.
|
23.2.2.16 Accessing frame blocks from Python.
|
.............................................
|
.............................................
|
|
|
Within each frame, GDB maintains information on each block stored in
|
Within each frame, GDB maintains information on each block stored in
|
that frame. These blocks are organized hierarchically, and are
|
that frame. These blocks are organized hierarchically, and are
|
represented individually in Python as a `gdb.Block'. Please see *Note
|
represented individually in Python as a `gdb.Block'. Please see *note
|
Frames In Python::, for a more in-depth discussion on frames.
|
Frames In Python::, for a more in-depth discussion on frames.
|
Furthermore, see *Note Examining the Stack: Stack, for more detailed
|
Furthermore, see *note Examining the Stack: Stack, for more detailed
|
technical information on GDB's book-keeping of the stack.
|
technical information on GDB's book-keeping of the stack.
|
|
|
The following block-related functions are available in the `gdb'
|
The following block-related functions are available in the `gdb'
|
module:
|
module:
|
|
|
Line 4543... |
Line 4518... |
Access to symbol table data maintained by GDB on the inferior is
|
Access to symbol table data maintained by GDB on the inferior is
|
exposed to Python via two objects: `gdb.Symtab_and_line' and
|
exposed to Python via two objects: `gdb.Symtab_and_line' and
|
`gdb.Symtab'. Symbol table and line data for a frame is returned from
|
`gdb.Symtab'. Symbol table and line data for a frame is returned from
|
the `find_sal' method in `gdb.Frame' object. *Note Frames In Python::.
|
the `find_sal' method in `gdb.Frame' object. *Note Frames In Python::.
|
|
|
For more information on GDB's symbol table management, see *Note
|
For more information on GDB's symbol table management, see *note
|
Examining the Symbol Table: Symbols, for more information.
|
Examining the Symbol Table: Symbols, for more information.
|
|
|
A `gdb.Symtab_and_line' object has the following attributes:
|
A `gdb.Symtab_and_line' object has the following attributes:
|
|
|
-- Instance Variable of Symtab_and_line: symtab
|
-- Instance Variable of Symtab_and_line: symtab
|
Line 4921... |
Line 4896... |
specified at runtime, GDB will use this interpreter.
|
specified at runtime, GDB will use this interpreter.
|
|
|
`mi'
|
`mi'
|
The newest GDB/MI interface (currently `mi2'). Used primarily by
|
The newest GDB/MI interface (currently `mi2'). Used primarily by
|
programs wishing to use GDB as a backend for a debugger GUI or an
|
programs wishing to use GDB as a backend for a debugger GUI or an
|
IDE. For more information, see *Note The GDB/MI Interface: GDB/MI.
|
IDE. For more information, see *note The GDB/MI Interface: GDB/MI.
|
|
|
`mi2'
|
`mi2'
|
The current GDB/MI interface.
|
The current GDB/MI interface.
|
|
|
`mi1'
|
`mi1'
|
Line 7487... |
Line 7462... |
|
|
-exec-run [--all | --thread-group N]
|
-exec-run [--all | --thread-group N]
|
|
|
Starts execution of the inferior from the beginning. The inferior
|
Starts execution of the inferior from the beginning. The inferior
|
executes until either a breakpoint is encountered or the program exits.
|
executes until either a breakpoint is encountered or the program exits.
|
In the latter case the output will include an exit code, if the
|
In the latter case the output will include an exit code, if the program
|
program has exited exceptionally.
|
has exited exceptionally.
|
|
|
When no option is specified, the current inferior is started. If the
|
When no option is specified, the current inferior is started. If the
|
`--thread-group' option is specified, it should refer to a thread group
|
`--thread-group' option is specified, it should refer to a thread group
|
of type `process', and that thread group will be started. If the
|
of type `process', and that thread group will be started. If the
|
`--all' option is specified, then all inferiors will be started.
|
`--all' option is specified, then all inferiors will be started.
|
Line 8290... |
Line 8265... |
|
|
Synopsis
|
Synopsis
|
........
|
........
|
|
|
-var-list-children [PRINT-VALUES] NAME [FROM TO]
|
-var-list-children [PRINT-VALUES] NAME [FROM TO]
|
|
|
Return a list of the children of the specified variable object and
|
Return a list of the children of the specified variable object and
|
create variable objects for them, if they do not already exist. With a
|
create variable objects for them, if they do not already exist. With a
|
single argument or if PRINT-VALUES has a value of 0 or `--no-values',
|
single argument or if PRINT-VALUES has a value of 0 or `--no-values',
|
print only the names of the variables; if PRINT-VALUES is 1 or
|
print only the names of the variables; if PRINT-VALUES is 1 or
|
`--all-values', also print their values; and if it is 2 or
|
`--all-values', also print their values; and if it is 2 or
|