- README for gdb-6.3 release
- Updated 8, November, 2004 by Andrew Cagney
+ README for GDB release
This is GDB, the GNU source-level debugger.
Unpacking and Installation -- quick overview
==========================
- In this release, the GDB debugger sources, the generic GNU include
+ The release is provided as a gzipped tar file called
+'gdb-VERSION.tar.gz', where VERSION is the version of GDB.
+
+ The GDB debugger sources, the generic GNU include
files, the BFD ("binary file description") library, the readline
library, and other libraries all have directories of their own
-underneath the gdb-6.3 directory. The idea is that a variety of GNU
+underneath the gdb-VERSION directory. The idea is that a variety of GNU
tools can share a common copy of these things. Be aware of variation
-over time--for example don't try to build gdb with a copy of bfd from
-a release other than the gdb release (such as a binutils release),
+over time--for example don't try to build GDB with a copy of bfd from
+a release other than the GDB release (such as a binutils release),
especially if the releases are more than a few weeks apart.
Configuration scripts and makefiles exist to cruise up and down this
directory tree and automatically build all the pieces in the right
order.
- When you unpack the gdb-6.3.tar.gz file, you'll find a directory
-called `gdb-6.3', which contains:
-
- COPYING config-ml.in gettext.m4 ltconfig sim
- COPYING.LIB config.guess include ltmain.sh src-release
- Makefile.def config.sub install-sh md5.sum symlink-tree
- Makefile.in configure libiberty missing texinfo
- Makefile.tpl configure.in libtool.m4 mkinstalldirs ylwrap
- README djunpack.bat ltcf-c.sh move-if-change
- bfd etc ltcf-cxx.sh opcodes
- config gdb ltcf-gcj.sh readline
+ When you unpack the gdb-VERSION.tar.gz file, it will create a
+source directory called `gdb-VERSION'.
You can build GDB right in the source directory:
- cd gdb-6.3
+ cd gdb-VERSION
./configure
make
cp gdb/gdb /usr/local/bin/gdb (or wherever you want)
mkdir build
cd build
- <full path to your sources>/gdb-6.3/configure
+ <full path to your sources>/gdb-VERSION/configure
make
cp gdb/gdb /usr/local/bin/gdb (or wherever you want)
(Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly
-different; see the file gdb-6.3/gdb/config/djgpp/README for details.)
+different; see the file gdb-VERSION/gdb/config/djgpp/README for details.)
This will configure and build all the libraries as well as GDB. If
`configure' can't determine your system type, specify one as its
argument, e.g., `./configure sun4' or `./configure decstation'.
- Make sure that your 'configure' line ends in 'gdb-6.3/configure':
+ Make sure that your 'configure' line ends in 'gdb-VERSION/configure':
- /berman/migchain/source/gdb-6.3/configure # RIGHT
- /berman/migchain/source/gdb-6.3/gdb/configure # WRONG
+ /berman/migchain/source/gdb-VERSION/configure # RIGHT
+ /berman/migchain/source/gdb-VERSION/gdb/configure # WRONG
- The gdb package contains several subdirectories, such as 'gdb',
+ The GDB package contains several subdirectories, such as 'gdb',
'bfd', and 'readline'. If your 'configure' line ends in
-'gdb-6.3/gdb/configure', then you are configuring only the gdb
-subdirectory, not the whole gdb package. This leads to build errors
+'gdb-VERSION/gdb/configure', then you are configuring only the gdb
+subdirectory, not the whole GDB package. This leads to build errors
such as:
make: *** No rule to make target `../bfd/bfd.h', needed by `gdb.o'. Stop.
GDB requires an ISO C (ANSI C) compiler. If you do not have an ISO
C compiler for your system, you may be able to download and install
the GNU CC compiler. It is available via anonymous FTP from the
-directory `ftp://ftp.gnu.org/pub/gnu/gcc'.
+directory `ftp://ftp.gnu.org/pub/gnu/gcc'. GDB also requires an ISO
+C standard library. The GDB remote server, GDBserver, builds with some
+non-ISO standard libraries - e.g. for Windows CE.
+
+ GDB uses Expat, an XML parsing library, to implement some target-specific
+features. Expat will be linked in if it is available at build time, or
+those features will be disabled. The latest version of Expat should be
+available from `http://expat.sourceforge.net'.
GDB can be used as a cross-debugger, running on a machine of one
type while debugging a program running on a machine of another type.
GDB includes an already formatted copy of the on-line Info version
of this manual in the `gdb/doc' subdirectory. The main Info file is
-`gdb-6.3/gdb/doc/gdb.info', and it refers to subordinate files
+`gdb-VERSION/gdb/doc/gdb.info', and it refers to subordinate files
matching `gdb.info*' in the same directory. If necessary, you can
print out these files, or read them with any editor; but they are
easier to read using the `info' subsystem in GNU Emacs or the
`makeinfo'.
If you have `makeinfo' installed, and are in the top level GDB
-source directory (`gdb-6.3', in the case of version 6.3), you can make
-the Info file by typing:
+source directory (`gdb-VERSION'), you can make the Info file by
+typing:
cd gdb/doc
make info
If you want to typeset and print copies of this manual, you need
TeX, a program to print its DVI output files, and `texinfo.tex', the
Texinfo definitions file. This file is included in the GDB
-distribution, in the directory `gdb-6.3/texinfo'.
+distribution, in the directory `gdb-VERSION/texinfo'.
TeX is a typesetting program; it does not print files directly, but
produces output files called DVI files. To print a typeset document,
This file tells TeX how to typeset a document written in Texinfo
format. On its own, TeX cannot read, much less typeset a Texinfo file.
`texinfo.tex' is distributed with GDB and is located in the
-`gdb-6.3/texinfo' directory.
+`gdb-VERSION/texinfo' directory.
If you have TeX and a DVI printer program installed, you can typeset
-and print this manual. First switch to the the `gdb' subdirectory of
-the main source directory (for example, to `gdb-6.3/gdb') and then type:
+and print this manual. First switch to the `gdb' subdirectory of
+the main source directory (for example, to `gdb-VERSION/gdb') and then type:
make doc/gdb.dvi
`gdb' program.
The GDB distribution includes all the source code you need for GDB in
-a single directory, whose name is usually composed by appending the
-version number to `gdb'.
-
- For example, the GDB version 6.3 distribution is in the `gdb-6.3'
-directory. That directory contains:
+a single directory. That directory contains:
-`gdb-6.3/{COPYING,COPYING.LIB}'
+`gdb-VERSION/{COPYING,COPYING.LIB}'
Standard GNU license files. Please read them.
-`gdb-6.3/bfd'
+`gdb-VERSION/bfd'
source for the Binary File Descriptor library
-`gdb-6.3/config*'
+`gdb-VERSION/config*'
script for configuring GDB, along with other support files
-`gdb-6.3/gdb'
+`gdb-VERSION/gdb'
the source specific to GDB itself
-`gdb-6.3/include'
+`gdb-VERSION/include'
GNU include files
-`gdb-6.3/libiberty'
+`gdb-VERSION/libiberty'
source for the `-liberty' free software library
-`gdb-6.3/opcodes'
+`gdb-VERSION/opcodes'
source for the library of opcode tables and disassemblers
-`gdb-6.3/readline'
+`gdb-VERSION/readline'
source for the GNU command-line interface
NOTE: The readline library is compiled for use by GDB, but will
not be installed on your system when "make install" is issued.
-`gdb-6.3/sim'
+`gdb-VERSION/sim'
source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)
-`gdb-6.3/texinfo'
+`gdb-VERSION/texinfo'
The `texinfo.tex' file, which you need in order to make a printed
manual using TeX.
-`gdb-6.3/etc'
+`gdb-VERSION/etc'
Coding standards, useful files for editing GDB, and other
miscellanea.
MS-DOS/MS-Windows are in the file gdb/config/djgpp/README.
The simplest way to configure and build GDB is to run `configure'
-from the `gdb-VERSION-NUMBER' source directory, which in this example
-is the `gdb-6.3' directory.
+from the `gdb-VERSION' directory.
- First switch to the `gdb-VERSION-NUMBER' source directory if you are
+ First switch to the `gdb-VERSION' source directory if you are
not already in it; then run `configure'.
For example:
- cd gdb-6.3
+ cd gdb-VERSION
./configure
make
sh configure
If you run `configure' from a directory that contains source
-directories for multiple libraries or programs, such as the `gdb-6.3'
-source directory for version 6.3, `configure' creates configuration
-files for every directory level underneath (unless you tell it not to,
-with the `--norecursion' option).
-
- You can run the `configure' script from any of the subordinate
-directories in the GDB distribution, if you only want to configure that
-subdirectory; but be sure to specify a path to it.
-
- For example, with version 6.3, type the following to configure only
-the `bfd' subdirectory:
-
- cd gdb-6.3/bfd
- ../configure
+directories for multiple libraries or programs, `configure' creates
+configuration files for every directory level underneath (unless
+you tell it not to, with the `--norecursion' option).
You can install `gdb' anywhere; it has no hardwired paths. However,
you should make sure that the shell on your path (named by the `SHELL'
argument to `--srcdir', you can leave out the `--srcdir' option; it
will be assumed.)
- For example, with version 6.3, you can build GDB in a separate
+ For example, you can build GDB in a separate
directory for a Sun 4 like this:
- cd gdb-6.3
+ cd gdb-VERSION
mkdir ../gdb-sun4
cd ../gdb-sun4
- ../gdb-6.3/configure
+ ../gdb-VERSION/configure
make
When `configure' builds a configuration using a remote source
The `Makefile' that `configure' generates in each source directory
also runs recursively. If you type `make' in a source directory such
-as `gdb-6.3' (or in a separate configured directory configured with
-`--srcdir=PATH/gdb-6.3'), you will build all the required libraries,
+as `gdb-VERSION' (or in a separate configured directory configured with
+`--srcdir=PATH/gdb-VERSION'), you will build all the required libraries,
and then build GDB.
When you have multiple hosts or targets configured in separate
% sh config.sub i786v
Invalid configuration `i786v': machine `i786v' not recognized
-`config.sub' is also distributed in the GDB source directory
-(`gdb-6.3', for version 6.3).
+`config.sub' is also distributed in the GDB source directory.
`configure' options
directories under the working directory in parallel to the source
directories below PATH.
+`--host=HOST'
+ Configure GDB to run on the specified HOST.
+
+ There is no convenient way to generate a list of all available
+ hosts.
+
+`HOST ...'
+ Same as `--host=HOST'. If you omit this, GDB will guess; it's
+ quite accurate.
+
`--norecursion'
Configure only the directory level where `configure' is executed;
do not propagate configuration to subdirectories.
-Wparentheses
-Wpointer-arith
+`--enable-werror'
+ Treat compiler warnings as werrors. Use this only with GCC. It
+ adds the -Werror flag to the compiler, which will fail the
+ compilation if the compiler outputs any warning messages.
+
`--target=TARGET'
Configure GDB for cross-debugging programs running on the specified
TARGET. Without this option, GDB is configured to debug programs
There is no convenient way to generate a list of all available
targets.
-`--host=HOST'
- Configure GDB to run on the specified HOST.
-
- There is no convenient way to generate a list of all available
- hosts.
-
-`HOST ...'
- Same as `--host=HOST'. If you omit this, GDB will guess; it's
- quite accurate.
+`--with-gdb-datadir=PATH'
+ Set the GDB-specific data directory. GDB will look here for
+ certain supporting files or scripts. This defaults to the `gdb'
+ subdirectory of `datadir' (which can be set using `--datadir').
+
+`--with-relocated-sources=DIR'
+ Sets up the default source path substitution rule so that
+ directory names recorded in debug information will be
+ automatically adjusted for any directory under DIR. DIR should
+ be a subdirectory of GDB's configured prefix, the one mentioned
+ in the `--prefix' or `--exec-prefix' options to configure. This
+ option is useful if GDB is supposed to be moved to a different
+ place after it is built.
+
+`--enable-64-bit-bfd'
+ Enable 64-bit support in BFD on 32-bit hosts.
+
+`--disable-gdbmi'
+ Build GDB without the GDB/MI machine interface.
+
+`--enable-tui'
+ Build GDB with the text-mode full-screen user interface (TUI).
+ Requires a curses library (ncurses and cursesX are also
+ supported).
+
+`--enable-gdbtk'
+ Build GDB with the gdbtk GUI interface. Requires TCL/Tk to be
+ installed.
+
+`--with-libunwind'
+ Use the libunwind library for unwinding function call stack. See
+ http://www.nongnu.org/libunwind/index.html fro details.
+ Supported only on some platforms.
+
+`--with-curses'
+ Use the curses library instead of the termcap library, for
+ text-mode terminal operations.
+
+`--enable-profiling' Enable profiling of GDB itself. Necessary if you
+ want to use the "maint set profile" command for profiling GDB.
+ Requires the functions `monstartup' and `_mcleanup' to be present
+ in the standard C library used to build GDB, and also requires a
+ compiler that supports the `-pg' option.
+
+`--with-system-readline'
+ Use the readline library installed on the host, rather than the
+ library supplied as part of GDB tarball.
+
+`--with-expat'
+ Build GDB with the libexpat library. (Done by default if
+ libexpat is installed and found at configure time.) This library
+ is used to read XML files supplied with GDB. If it is
+ unavailable, some features, such as remote protocol memory maps,
+ target descriptions, and shared library lists, that are based on
+ XML files, will not be available in GDB. If your host does not
+ have libexpat installed, you can get the latest version from
+ http://expat.sourceforge.net.
+
+`--with-python[=PATH]'
+ Build GDB with Python scripting support. (Done by default if
+ libpython is present and found at configure time.) Python makes
+ GDB scripting much more powerful than the restricted CLI
+ scripting language. If your host does not have Python installed,
+ you can find it on http://www.python.org/download/. The oldest
+ version of Python supported by GDB is 2.4. The optional argument
+ PATH says where to find the Python headers and libraries; the
+ configure script will look in PATH/include for headers and in
+ PATH/lib for the libraries.
+
+`--without-included-regex'
+ Don't use the regex library included with GDB (as part of the
+ libiberty library). This is the default on hosts with version 2
+ of the GNU C library.
+
+`--with-sysroot=DIR'
+ Use DIR as the default system root directory for libraries whose
+ file names begin with `/lib' or `/usr/lib'. (The value of DIR
+ can be modified at run time by using the "set sysroot" command.)
+ If DIR is under the GDB configured prefix (set with `--prefix' or
+ `--exec-prefix' options), the default system root will be
+ automatically adjusted if and when GDB is moved to a different
+ location.
+
+`--with-system-gdbinit=FILE'
+ Configure GDB to automatically load a system-wide init file.
+ FILE should be an absolute file name. If FILE is in a directory
+ under the configured prefix, and GDB is moved to another location
+ after being built, the location of the system-wide init file will
+ be adjusted accordingly.
`configure' accepts other options, for compatibility with configuring
other GNU tools recursively; but these are the only options that affect
with the remote.c stub over a serial line.
The directory gdb/gdbserver/ contains `gdbserver', a program that
-allows remote debugging for Unix applications. gdbserver is only
+allows remote debugging for Unix applications. GDBserver is only
supported for some native configurations, including Sun 3, Sun 4, and
Linux.
+The file gdb/gdbserver/README includes further notes on GDBserver; in
+particular, it explains how to build GDBserver for cross-debugging
+(where GDBserver runs on the target machine, which is of a different
+architecture than the host machine running GDB).
There are a number of remote interfaces for talking to existing ROM
monitors and other hardware:
- remote-e7000.c Renesas E7000 ICE
- remote-est.c EST emulator
- remote-hms.c Renesas Micro Systems H8/300 monitor
remote-mips.c MIPS remote debugging protocol
- remote-rdi.c ARM with Angel monitor
- remote-rdp.c ARM with Demon monitor
remote-sds.c PowerPC SDS monitor
remote-sim.c Generalized simulator protocol
- remote-st.c Tandem ST-2000 monitor
- remote-vx.c VxWorks realtime kernel
-
- Remote-vx.c and the vx-share subdirectory contain a remote
-interface for the VxWorks realtime kernel, which communicates over TCP
-using the Sun RPC library. This would be a useful starting point for
-other remote- via-ethernet back ends.
Reporting Bugs in GDB
As an alternative, the bug report can be submitted, via e-mail, to the
- When submitting a bug, please include the GDB version number (e.g.,
-gdb-6.3), and how you configured it (e.g., "sun4" or "mach386 host,
+ When submitting a bug, please include the GDB version number, and
+how you configured it (e.g., "sun4" or "mach386 host,
i586-intel-synopsys target"). Since GDB now supports so many
different configurations, it is important that you be precise about
-this. If at all possible, you should include the actual banner that
-GDB prints when it starts up, or failing that, the actual configure
-command that you used when configuring GDB.
+this. If at all possible, you should include the actual banner
+that GDB prints when it starts up, or failing that, the actual
+configure command that you used when configuring GDB.
For more information on how/whether to report bugs, see the
Reporting Bugs chapter of the GDB manual (gdb/doc/gdb.texinfo).
Once DejaGNU is installed, you can run the tests in one of the
following ways:
- (1) cd gdb-6.3
+ (1) cd gdb-VERSION
make check-gdb
or
- (2) cd gdb-6.3/gdb
+ (2) cd gdb-VERSION/gdb
make check
or
- (3) cd gdb-6.3/gdb/testsuite
+ (3) cd gdb-VERSION/gdb/testsuite
make site.exp (builds the site specific file)
runtest -tool gdb GDB=../gdb (or GDB=<somepath> as appropriate)
+When using a `make'-based method, you can use the Makefile variable
+`RUNTESTFLAGS' to pass flags to `runtest', e.g.:
+
+ make RUNTESTFLAGS=--directory=gdb.cp check
+
+If you use GNU make, you can use its `-j' option to run the testsuite
+in parallel. This can greatly reduce the amount of time it takes for
+the testsuite to run. In this case, if you set `RUNTESTFLAGS' then,
+by default, the tests will be run serially even under `-j'. You can
+override this and force a parallel run by setting the `make' variable
+`FORCE_PARALLEL' to any non-empty value. Note that the parallel `make
+check' assumes that you want to run the entire testsuite, so it is not
+compatible with some dejagnu options, like `--directory'.
+
The last method gives you slightly more control in case of problems
with building one or more test executables or if you are using the
testsuite `standalone', without it being part of the GDB source tree.