- README for gdb-4.18 release
- Updated 4 Apr 1999 by Jim Blandy
+ README for gdb-6.3 release
+ Updated 20, November, 2006
This is GDB, the GNU source-level debugger.
-A summary of new features is in the file `NEWS'.
-See the GDB home page at http://sourceware.cygnus.com/gdb/ for up to
+A summary of new features is in the file `gdb/NEWS'.
+
+Check the GDB home page at http://www.gnu.org/software/gdb/ for up to
date release information, mailing list links and archives, etc.
+The file `gdb/PROBLEMS' contains information on problems identified
+late in the release cycle. GDB's bug tracking data base at
+http://www.gnu.org/software/gdb/bugs/ contains a more complete list of
+bugs.
+
Unpacking and Installation -- quick overview
==========================
-In this release, the GDB debugger sources, the generic GNU include
+ In this release, 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-4.18 directory. The idea is that a variety of GNU
+underneath the gdb-6.3 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 or gas
-release), especially if the releases are more than a few weeks apart.
+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-4.18.tar.gz file, you'll find a directory
-called `gdb-4.18', which contains:
+ 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
+
+You can build GDB right in the source directory:
+
+ cd gdb-6.3
+ ./configure
+ make
+ cp gdb/gdb /usr/local/bin/gdb (or wherever you want)
+
+However, we recommend that an empty directory be used instead.
+This way you do not clutter your source tree with binary files
+and will be able to create different builds with different
+configuration options.
+
+You can build GDB in any empty build directory:
+
+ mkdir build
+ cd build
+ <full path to your sources>/gdb-6.3/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.)
- COPYING config.sub* libiberty/ opcodes/
- COPYING.LIB configure* mmalloc/ readline/
- Makefile.in configure.in move-if-change* sim/
- README etc/ mpw-README texinfo/
- bfd/ gdb/ mpw-build.in utils/
- config/ include/ mpw-config.in
- config.guess* install.sh* mpw-configure
+ 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'.
-To build GDB, you can just do:
+ Make sure that your 'configure' line ends in 'gdb-6.3/configure':
- cd gdb-4.18
- ./configure
- make
- cp gdb/gdb /usr/local/bin/gdb (or wherever you want)
+ /berman/migchain/source/gdb-6.3/configure # RIGHT
+ /berman/migchain/source/gdb-6.3/gdb/configure # WRONG
-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., sun4 or decstation.
+ 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
+such as:
-If you get compiler warnings during this stage, see the `Reporting Bugs'
-section below; there are a few known problems.
+ make: *** No rule to make target `../bfd/bfd.h', needed by `gdb.o'. Stop.
-GDB requires an ANSI C compiler. If you do not have an ANSI C
-compiler for your system, you may be able to download and install the
-GNU CC compiler. It is available via anonymous FTP from ftp.gnu.org,
-in /pub/gnu/gcc (as a URL, that's ftp://ftp.gnu.org/pub/gnu/gcc).
+ If you get other compiler errors during this stage, see the `Reporting
+Bugs' section below; there are a few known problems.
-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. See below.
+ 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'. 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.
+See below.
More Documentation
******************
All the documentation for GDB comes as part of the machine-readable
-distribution. The documentation is written in Texinfo format, which is
-a documentation system that uses a single source file to produce both
-on-line information and a printed manual. You can use one of the Info
-formatting commands to create the on-line version of the documentation
-and TeX (or `texi2roff') to typeset the printed version.
-
- 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-4.18/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 standalone `info' program,
-available as part of the GNU Texinfo distribution.
+distribution. The documentation is written in Texinfo format, which
+is a documentation system that uses a single source file to produce
+both on-line information and a printed manual. You can use one of the
+Info formatting commands to create the on-line version of the
+documentation and TeX (or `texi2roff') to typeset the printed version.
+
+ 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
+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
+standalone `info' program, available as part of the GNU Texinfo
+distribution.
If you want to format these Info files yourself, you need one of the
Info formatting programs, such as `texinfo-format-buffer' or
`makeinfo'.
If you have `makeinfo' installed, and are in the top level GDB
-source directory (`gdb-4.18', in the case of version 4.18), you can make
+source directory (`gdb-6.3', in the case of version 6.3), you can make
the Info file by typing:
- cd gdb/doc
- make info
+ 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-4.18/texinfo'.
+distribution, in the directory `gdb-6.3/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-4.18/texinfo' directory.
+`gdb-6.3/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-4.18/gdb') and then type:
+the main source directory (for example, to `gdb-6.3/gdb') and then type:
+
+ make doc/gdb.dvi
+
+ If you prefer to have the manual in PDF format, type this from the
+`gdb/doc' subdirectory of the main source directory:
- make gdb.dvi
+ make gdb.pdf
+
+For this to work, you will need the PDFTeX package to be installed.
Installing GDB
a single directory, whose name is usually composed by appending the
version number to `gdb'.
- For example, the GDB version 4.18 distribution is in the `gdb-4.18'
+ For example, the GDB version 6.3 distribution is in the `gdb-6.3'
directory. That directory contains:
-`gdb-4.18/{COPYING,COPYING.LIB}'
+`gdb-6.3/{COPYING,COPYING.LIB}'
Standard GNU license files. Please read them.
-`gdb-4.18/bfd'
+`gdb-6.3/bfd'
source for the Binary File Descriptor library
-`gdb-4.18/config*'
+`gdb-6.3/config*'
script for configuring GDB, along with other support files
-`gdb-4.18/gdb'
+`gdb-6.3/gdb'
the source specific to GDB itself
-`gdb-4.18/include'
+`gdb-6.3/include'
GNU include files
-`gdb-4.18/libiberty'
+`gdb-6.3/libiberty'
source for the `-liberty' free software library
-`gdb-4.18/mmalloc'
- source for the GNU memory-mapped malloc package
-
-`gdb-4.18/opcodes'
+`gdb-6.3/opcodes'
source for the library of opcode tables and disassemblers
-`gdb-4.18/readline'
+`gdb-6.3/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-4.18/sim'
+`gdb-6.3/sim'
source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)
-`gdb-4.18/intl'
- source for the GNU gettext library, for internationalization.
- This is slightly modified from the standalone gettext
- distribution you can get from GNU.
-
-`gdb-4.18/texinfo'
+`gdb-6.3/texinfo'
The `texinfo.tex' file, which you need in order to make a printed
manual using TeX.
-`gdb-4.18/etc'
+`gdb-6.3/etc'
Coding standards, useful files for editing GDB, and other
miscellanea.
-`gdb-4.18/utils'
- A grab bag of random utilities.
-
+ Note: the following instructions are for building GDB on Unix or
+Unix-like systems. Instructions for building with DJGPP for
+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-4.18' directory.
+is the `gdb-6.3' directory.
First switch to the `gdb-VERSION-NUMBER' source directory if you are
not already in it; then run `configure'.
For example:
- cd gdb-4.18
- ./configure
- make
+ cd gdb-6.3
+ ./configure
+ make
Running `configure' followed by `make' builds the `bfd',
`readline', `mmalloc', and `libiberty' libraries, then `gdb' itself.
does not recognize this automatically when you run a different shell,
you may need to run `sh' on it explicitly:
- sh configure
+ sh configure
If you run `configure' from a directory that contains source
-directories for multiple libraries or programs, such as the `gdb-4.18'
-source directory for version 4.18, `configure' creates configuration
+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).
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 4.18, type the following to configure only
+ For example, with version 6.3, type the following to configure only
the `bfd' subdirectory:
- cd gdb-4.18/bfd
- ../configure
+ cd gdb-6.3/bfd
+ ../configure
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 4.18, you can build GDB in a separate
+ For example, with version 6.3, you can build GDB in a separate
directory for a Sun 4 like this:
- cd gdb-4.18
+ cd gdb-6.3
mkdir ../gdb-sun4
cd ../gdb-sun4
- ../gdb-4.18/configure sun4
+ ../gdb-6.3/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-4.18' (or in a separate configured directory configured with
-`--srcdir=PATH/gdb-4.18'), you will build all the required libraries,
+as `gdb-6.3' (or in a separate configured directory configured with
+`--srcdir=PATH/gdb-6.3'), you will build all the required libraries,
and then build GDB.
When you have multiple hosts or targets configured in separate
Invalid configuration `i786v': machine `i786v' not recognized
`config.sub' is also distributed in the GDB source directory
-(`gdb-4.18', for version 4.18).
+(`gdb-6.3', for version 6.3).
`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.
code which looks even vaguely suspicious. You should only using
this feature if you're compiling with GNU CC. It passes the
following flags:
- -Wall
+ -Wimplicit
+ -Wreturn-type
+ -Wcomment
+ -Wtrigraphs
+ -Wformat
+ -Wparentheses
-Wpointer-arith
- -Wstrict-prototypes
- -Wmissing-prototypes
- -Wmissing-declarations
+
+`--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
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
GDB or its supporting libraries.
-Languages other than C
-=======================
+Remote debugging
+=================
-See the GDB manual (gdb/doc/gdb.texinfo) for information on this.
+ The files m68k-stub.c, i386-stub.c, and sparc-stub.c are examples
+of remote stubs to be used with remote.c. They are designed to run
+standalone on an m68k, i386, or SPARC cpu and communicate properly
+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
+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-mips.c MIPS remote debugging protocol
+ remote-sds.c PowerPC SDS monitor
+ remote-sim.c Generalized simulator protocol
-Kernel debugging
-=================
-I have't done this myself so I can't really offer any advice.
-Remote debugging over serial lines works fine, but the kernel debugging
-code in here has not been tested in years. Van Jacobson has
-better kernel debugging, but the UC lawyers won't let FSF have it.
+Reporting Bugs in GDB
+=====================
+ There are several ways of reporting bugs in GDB. The prefered
+method is to use the World Wide Web:
-Remote debugging
-=================
+ http://www.gnu.org/software/gdb/bugs/
-The files m68k-stub.c, i386-stub.c, and sparc-stub.c are examples of
-remote stubs to be used with remote.c. They are designed to run
-standalone on an m68k, i386, or SPARC cpu and communicate properly with
-the remote.c stub over a serial line.
+As an alternative, the bug report can be submitted, via e-mail, to the
+address "bug-gdb@gnu.org".
-The directory gdb/gdbserver/ contains `gdbserver', a program that
-allows remote debugging for Unix applications. gdbserver is only
-supported for some native configurations, including Sun 3, Sun 4,
-and Linux.
+ 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,
+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.
-There are a number of remote interfaces for talking to existing ROM
-monitors and other hardware:
+ For more information on how/whether to report bugs, see the
+Reporting Bugs chapter of the GDB manual (gdb/doc/gdb.texinfo).
- remote-adapt.c AMD 29000 "Adapt"
- remote-array.c Array Tech RAID controller
- remote-bug.c Motorola BUG monitor
- remote-d10v.c GDB protocol, talking to a d10v chip
- remote-e7000.c Hitachi E7000 ICE
- remote-eb.c AMD 29000 "EBMON"
- remote-es.c Ericsson 1800 monitor
- remote-est.c EST emulator
- remote-hms.c Hitachi Micro Systems H8/300 monitor
- remote-mips.c MIPS remote debugging protocol
- remote-mm.c AMD 29000 "minimon"
- remote-nindy.c Intel 960 "Nindy"
- remote-nrom.c NetROM ROM emulator
- remote-os9k.c PC running OS/9000
- 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-udi.c AMD 29000 using the AMD "Universal Debug Interface"
- 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.
-
-Remote-udi.c and the 29k-share subdirectory contain a remote interface
-for AMD 29000 programs, which uses the AMD "Universal Debug Interface".
-This allows GDB to talk to software simulators, emulators, and/or bare
-hardware boards, via network or serial interfaces. Note that GDB only
-provides an interface that speaks UDI, not a complete solution. You
-will need something on the other end that also speaks UDI.
-
-
-Reporting Bugs
-===============
-
-The correct address for reporting bugs found in gdb is
-"bug-gdb@gnu.org". Please email all bugs, and all requests for
-help with GDB, to that address. Please include the GDB version number
-(e.g., gdb-4.18), 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.
-
-For more information on how/whether to report bugs, see the GDB Bugs
-section of the GDB manual (gdb/doc/gdb.texinfo).
-
-Known bugs:
-
- * Under Ultrix 4.2 (DECstation-3100) or Alphas under OSF/1, we have
- seen problems with backtraces after interrupting the inferior out
- of a read(). The problem is caused by ptrace() returning an
- incorrect value for the frame pointer register (register 15 or
- 30). As far as we can tell, this is a kernel problem. Any help
- with this would be greatly appreciated.
-
- * Under Ultrix 4.4 (DECstation-3100), setting the TERMCAP environment
- variable to a string without a trailing ':' can cause GDB to dump
- core upon startup. Although the core file makes it look as though
- GDB code failed, the crash actually occurs within a call to the
- termcap library function tgetent(). The problem can be solved by
- using the GNU Termcap library.
-
- Alphas running OSF/1 (versions 1.0 through 2.1) have the same buggy
- termcap code, but GDB behaves strangely rather than crashing.
-
- * On DECstations there are warnings about shift counts out of range in
- various BFD modules. None of them is a cause for alarm, they are actually
- a result of bugs in the DECstation compiler.
-
- * Notes for the DEC Alpha using OSF/1:
- The debugging output of native cc has two known problems; we view these
- as compiler bugs.
- The linker miscompacts symbol tables, which causes gdb to confuse the
- type of variables or results in `struct <illegal>' type outputs.
- dbx has the same problems with those executables. A workaround is to
- specify -Wl,-b when linking, but that will increase the executable size
- considerably.
- If a structure has incomplete type in one file (e.g., "struct foo *"
- without a definition for "struct foo"), gdb will be unable to find the
- structure definition from another file.
- It has been reported that the Ultrix 4.3A compiler on decstations has the
- same problems.
-
- * Notes for Solaris 2.x, using the SPARCworks cc compiler:
- You have to compile your program with the -xs option of the SPARCworks
- compiler to be able to debug your program with gdb.
- Under Solaris 2.3 you also need patch 101409-03 (Jumbo linker patch).
- Under Solaris 2.2, if you have patch 101052 installed, make sure
- that it is at least at revision 101052-06.
-
- * Under Irix 5 for SGIs, you must have installed the `compiler_dev.hdr'
- subsystem that is on the IDO CD, otherwise you will get complaints
- that certain files such as `/usr/include/syms.h' cannot be found.
-
- * Notes for BSD/386:
- To compile gdb-4.18 on BSD/386, you must run the configure script and
- its subscripts with bash. Here is an easy way to do this:
-
- bash -c 'CONFIG_SHELL=/bin/bash ./configure'
-
- (configure will report i386-unknown-bsd). Then, compile with the
- standard "make" command.
-
-GDB can produce warnings about symbols that it does not understand. By
-default, these warnings are disabled. You can enable them by executing
-`set complaint 10' (which you can put in your ~/.gdbinit if you like).
-I recommend doing this if you are working on a compiler, assembler,
-linker, or GDB, since it will point out problems that you may be able
-to fix. Warnings produced during symbol reading indicate some mismatch
-between the object file and GDB's symbol reading code. In many cases,
-it's a mismatch between the specs for the object file format, and what
-the compiler actually outputs or the debugger actually understands.
-
-
-X Windows versus GDB
-=====================
-You should check out DDD, the Data Display Debugger. Here's the blurb
-from the DDD web site, http://www.cs.tu-bs.de/softech/ddd:
-
- The Data Display Debugger (DDD) is a popular graphical user
- interface for command-line debuggers such as GDB, DBX, JDB, WDB,
- XDB, the Perl debugger, and the Python debugger. Besides ``usual''
- front-end features such as viewing source texts, DDD has become
- famous through its interactive graphical data display, where data
- structures are displayed as graphs. A simple mouse click
- dereferences pointers or views structure contents, updated each
- time the program stops. Using DDD, you can reason about your
- application by watching its data, not just by viewing it execute
- lines of source code.
-
-Emacs users will very likely enjoy the Grand Unified Debugger mode;
-try typing `M-x gdb RET'.
+Graphical interface to GDB -- X Windows, MS Windows
+==========================
+
+ Several graphical interfaces to GDB are available. You should
+check:
+
+ http://www.gnu.org/software/gdb/links/
-Those interested in experimenting with a new kind of gdb-mode
-should load gdb/gdba.el into GNU Emacs 19.25 or later. Comments
-on this mode are also welcome.
+for an up-to-date list.
+
+ Emacs users will very likely enjoy the Grand Unified Debugger mode;
+try typing `M-x gdb RET'.
Writing Code for GDB
=====================
-There is a lot of information about writing code for GDB in the
+ There is a lot of information about writing code for GDB in the
internals manual, distributed with GDB in gdb/doc/gdbint.texinfo. You
can read it by hand, print it by using TeX and texinfo, or process it
into an `info' file for use with Emacs' info mode or the standalone
`info' program.
-If you are pondering writing anything but a short patch, especially
+ If you are pondering writing anything but a short patch, especially
take note of the information about copyrights in the node Submitting
Patches. It can take quite a while to get all the paperwork done, so
we encourage you to start that process as soon as you decide you are
GDB Testsuite
=============
-There is a DejaGNU based testsuite available for testing your newly
-built GDB, or for regression testing GDBs with local modifications.
+ Included with the GDB distribution is a DejaGNU based testsuite
+that can either be used to test your newly built GDB, or for
+regression testing a GDB with local modifications.
+
+ Running the testsuite requires the prior installation of DejaGNU,
+which is generally available via ftp. The directory
+ftp://sources.redhat.com/pub/dejagnu/ will contain a recent snapshot.
+Once DejaGNU is installed, you can run the tests in one of the
+following ways:
+
+ (1) cd gdb-6.3
+ make check-gdb
-Running the testsuite requires the prior installation of DejaGNU,
-which is generally available via ftp; you'll need a pretty recent
-release. Once DejaGNU is installed, you can run the tests in one of
-two ways:
+or
- (1) cd gdb-4.18/gdb (assuming you also unpacked gdb)
+ (2) cd gdb-6.3/gdb
make check
or
- (2) cd gdb-4.18/gdb/testsuite
+ (3) cd gdb-6.3/gdb/testsuite
make site.exp (builds the site specific file)
runtest -tool gdb GDB=../gdb (or GDB=<somepath> as appropriate)
-The second 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.
+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.
See the DejaGNU documentation for further details.