* mipsread.c (read_alphacoff_dynamic_symtab): Replace alloca calls
[deliverable/binutils-gdb.git] / gdb / README
index 46b9074ff17dcf48475d10dbf45ad98f5b46940b..c718b6f5b290ae383eee8e2b7d79031afb1d7385 100644 (file)
@@ -1,5 +1,5 @@
-                    README for gdb-4.18 release
-                  Updated 4 Apr 1999 by Jim Blandy
+                    README for gdb-5.0 release
+               Updated 11 May 2000 by Andrew Cagney
 
 This is GDB, the GNU source-level debugger.
 A summary of new features is in the file `NEWS'.
@@ -11,10 +11,10 @@ date release information, mailing list links and archives, etc.
 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-5.0 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
@@ -23,64 +23,83 @@ 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-5.0.tar.gz file, you'll find a directory
+called `gdb-5.0', which contains:
 
-  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
+  COPYING       config.if     install-sh     mmalloc         readline
+  COPYING.LIB   config.sub    intl           move-if-change  sim
+  Makefile.in   configure     libiberty      mpw-README      symlink-tree
+  README        configure.in  ltconfig       mpw-build.in    texinfo
+  bfd           djunpack.bat  ltmain.sh      mpw-config.in   utils
+  config        etc           md5.sum        mpw-configure   ylwrap
+  config-ml.in  gdb           missing        mpw-install
+  config.guess  include       mkinstalldirs  opcodes
 
-To build GDB, you can just do:
+You can build GDB right in the source directory:
 
-       cd gdb-4.18
+       cd gdb-5.0
        ./configure
        make
        cp gdb/gdb /usr/local/bin/gdb   (or wherever you want)
 
-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.
+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.
 
-If you get compiler warnings during this stage, see the `Reporting Bugs'
-section below; there are a few known problems.
+You can build GDB in any empty build directory:
 
-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).
+     
+     mkdir build
+     cd build
+     <full path to your sources>/gdb-5.0/configure
+     make
+
+(Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly
+different; see the file gdb-5.0/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'.
+
+   If you get 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 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-5.0/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-5.0', in the case of version 5.0), you can make
 the Info file by typing:
 
      cd gdb/doc
@@ -89,7 +108,7 @@ the Info file by typing:
    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-5.0/texinfo'.
 
    TeX is a typesetting program; it does not print files directly, but
 produces output files called DVI files.  To print a typeset document,
@@ -103,11 +122,11 @@ without any extension or a `.dvi' extension.
 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-5.0/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-5.0/gdb') and then type:
 
      make gdb.dvi
 
@@ -123,68 +142,71 @@ preparing GDB for installation; you can then use `make' to build the
 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 5.0 distribution is in the `gdb-5.0'
 directory.  That directory contains:
 
-`gdb-4.18/{COPYING,COPYING.LIB}'
+`gdb-5.0/{COPYING,COPYING.LIB}'
      Standard GNU license files.  Please read them.
 
-`gdb-4.18/bfd'
+`gdb-5.0/bfd'
      source for the Binary File Descriptor library
 
-`gdb-4.18/config*'
+`gdb-5.0/config*'
      script for configuring GDB, along with other support files
 
-`gdb-4.18/gdb'
+`gdb-5.0/gdb'
      the source specific to GDB itself
 
-`gdb-4.18/include'
+`gdb-5.0/include'
      GNU include files
 
-`gdb-4.18/libiberty'
+`gdb-5.0/libiberty'
      source for the `-liberty' free software library
 
-`gdb-4.18/mmalloc'
+`gdb-5.0/mmalloc'
      source for the GNU memory-mapped malloc package
 
-`gdb-4.18/opcodes'
+`gdb-5.0/opcodes'
      source for the library of opcode tables and disassemblers
 
-`gdb-4.18/readline'
+`gdb-5.0/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-5.0/sim'
      source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc)
 
-`gdb-4.18/intl'
+`gdb-5.0/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-5.0/texinfo'
      The `texinfo.tex' file, which you need in order to make a printed
      manual using TeX.
 
-`gdb-4.18/etc'
+`gdb-5.0/etc'
      Coding standards, useful files for editing GDB, and other
      miscellanea.
 
-`gdb-4.18/utils'
+`gdb-5.0/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-5.0' 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
+     cd gdb-5.0
      ./configure
      make
 
@@ -200,8 +222,8 @@ you may need to run `sh' on it explicitly:
      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-5.0'
+source directory for version 5.0, `configure' creates configuration
 files for every directory level underneath (unless you tell it not to,
 with the `--norecursion' option).
 
@@ -209,10 +231,10 @@ 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 5.0, type the following to configure only
 the `bfd' subdirectory:
 
-     cd gdb-4.18/bfd
+     cd gdb-5.0/bfd
      ../configure
 
    You can install `gdb' anywhere; it has no hardwired paths. However,
@@ -241,13 +263,13 @@ directory.  If the path to `configure' would be the same as the
 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 5.0, you can build GDB in a separate
 directory for a Sun 4 like this:
 
-     cd gdb-4.18
+     cd gdb-5.0
      mkdir ../gdb-sun4
      cd ../gdb-sun4
-     ../gdb-4.18/configure sun4
+     ../gdb-5.0/configure
      make
 
    When `configure' builds a configuration using a remote source
@@ -268,8 +290,8 @@ called `configure' (or one of its subdirectories).
 
    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-5.0' (or in a separate configured directory configured with
+`--srcdir=PATH/gdb-5.0'), you will build all the required libraries,
 and then build GDB.
 
    When you have multiple hosts or targets configured in separate
@@ -312,7 +334,7 @@ you can use it to test your guesses on abbreviations--for example:
      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-5.0', for version 5.0).
 
 
 `configure' options
@@ -366,11 +388,13 @@ prefer; but you may abbreviate option names if you use `--'.
      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
 
 `--target=TARGET'
      Configure GDB for cross-debugging programs running on the specified
@@ -404,32 +428,30 @@ See the GDB manual (gdb/doc/gdb.texinfo) for information on this.
 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
+   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.
 
 
 Remote debugging
 =================
 
-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 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
+   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.
+supported for some native configurations, including Sun 3, Sun 4, and
+Linux.
 
-There are a number of remote interfaces for talking to existing ROM
+   There are a number of remote interfaces for talking to existing ROM
 monitors and other hardware:
 
        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
@@ -448,34 +470,36 @@ monitors and other hardware:
        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-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.
+   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
+   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-5.0), 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.
+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).
+   For more information on how/whether to report bugs, see the GDB
+Bugs section of the GDB manual (gdb/doc/gdb.texinfo) or the
+gdb/CONTRIBUTE file.
 
 Known bugs:
 
@@ -525,61 +549,47 @@ Known bugs:
     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
-=====================
+  * Under Irix 6 you must build with GCC.  The vendor compiler reports
+    as errors certain assignments that GCC considers to be warnings.
+  
+   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.
+
+
+Graphical interface to GDB -- X Windows, MS Windows
+==========================
 
-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:
+   Several graphical interfaces to GDB are available.  You should
+check:
 
-    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.
+       http://sourceware.cygnus.com/gdb/#gui
 
-Emacs users will very likely enjoy the Grand Unified Debugger mode;
-try typing `M-x gdb RET'.
+for an up-to-date list.
 
-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.
+   Emacs users will very likely enjoy the Grand Unified Debugger mode;
+try typing `M-x gdb RET'.  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.
 
 
 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
@@ -590,26 +600,33 @@ think you will be ready to submit the patches.
 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; you'll need a pretty recent
-release.  Once DejaGNU is installed, you can run the tests in one of
-two ways:
+   Running the testsuite requires the prior installation of DejaGNU,
+which is generally available via ftp.  The directory
+ftp://sourceware.cygnus.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-5.0
+       make check-gdb
+
+or
 
-  (1)  cd gdb-4.18/gdb         (assuming you also unpacked gdb)
+  (2)  cd gdb-5.0/gdb
        make check
 
 or
 
-  (2)  cd gdb-4.18/gdb/testsuite
+  (3)  cd gdb-5.0/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.
+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.
 
This page took 0.038769 seconds and 4 git commands to generate.