| README for GDB release |
| |
| This is GDB, the GNU source-level debugger. |
| |
| 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. |
| |
| GDB's bug tracking data base can be found at |
| http://www.gnu.org/software/gdb/bugs/ |
| |
| Unpacking and Installation -- quick overview |
| ========================== |
| |
| 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-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), |
| 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-VERSION.tar.gz file, it will create a |
| source directory called `gdb-VERSION'. |
| |
| You can build GDB right in the source directory: |
| |
| cd gdb-VERSION |
| ./configure --prefix=/usr/local (or wherever you want) |
| make all install |
| |
| 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-VERSION/configure [etc...] |
| make all install |
| |
| (Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly |
| 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-VERSION/configure': |
| |
| /berman/migchain/source/gdb-VERSION/configure # RIGHT |
| /berman/migchain/source/gdb-VERSION/gdb/configure # WRONG |
| |
| The GDB package contains several subdirectories, such as 'gdb', |
| 'bfd', and 'readline'. If your 'configure' line ends in |
| '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. |
| |
| If you get other compiler errors during this stage, see the `Reporting |
| Bugs' section below; there are a few known problems. |
| |
| GDB's `configure' script has many options to enable or disable |
| different features or dependencies. These options are not generally |
| known to the top-level `configure', so if you want to see a complete |
| list of options, invoke the subdirectory `configure', like: |
| |
| /berman/migchain/source/gdb-VERSION/gdb/configure --help |
| |
| (Take note of how this differs from the invocation used to actually |
| configure the build tree.) |
| |
| GDB requires a C++11 compiler. If you do not have a |
| C++11 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 can optionally be built against various external libraries. |
| These dependencies are described below in the "`configure options" |
| section of this README. |
| |
| 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-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 |
| 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-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-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, |
| you need a program to print DVI files. If your system has TeX |
| installed, chances are it has such a program. The precise command to |
| use depends on your system; `lpr -d' is common; another (for PostScript |
| devices) is `dvips'. The DVI print command may require a file name |
| without any extension or a `.dvi' extension. |
| |
| TeX also requires a macro definitions file called `texinfo.tex'. |
| 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-VERSION/texinfo' directory. |
| |
| If you have TeX and a DVI printer program installed, you can typeset |
| 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 |
| |
| If you prefer to have the manual in PDF format, type this from the |
| `gdb/doc' subdirectory of the main source directory: |
| |
| make gdb.pdf |
| |
| For this to work, you will need the PDFTeX package to be installed. |
| |
| |
| Installing GDB |
| ************** |
| |
| GDB comes with a `configure' script that automates the process of |
| preparing GDB for installation; you can then use `make' to build the |
| `gdb' program. |
| |
| The GDB distribution includes all the source code you need for GDB in |
| a single directory. That directory contains: |
| |
| `gdb-VERSION/{COPYING,COPYING.LIB}' |
| Standard GNU license files. Please read them. |
| |
| `gdb-VERSION/bfd' |
| source for the Binary File Descriptor library |
| |
| `gdb-VERSION/config*' |
| script for configuring GDB, along with other support files |
| |
| `gdb-VERSION/gdb' |
| the source specific to GDB itself |
| |
| `gdb-VERSION/include' |
| GNU include files |
| |
| `gdb-VERSION/libiberty' |
| source for the `-liberty' free software library |
| |
| `gdb-VERSION/opcodes' |
| source for the library of opcode tables and disassemblers |
| |
| `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-VERSION/sim' |
| source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc) |
| |
| `gdb-VERSION/texinfo' |
| The `texinfo.tex' file, which you need in order to make a printed |
| manual using TeX. |
| |
| `gdb-VERSION/etc' |
| Coding standards, useful files for editing GDB, and other |
| miscellanea. |
| |
| 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' directory. |
| |
| First switch to the `gdb-VERSION' source directory if you are |
| not already in it; then run `configure'. |
| |
| For example: |
| |
| cd gdb-VERSION |
| ./configure |
| make |
| |
| Running `configure' followed by `make' builds the `bfd', |
| `readline', `mmalloc', and `libiberty' libraries, then `gdb' itself. |
| The configured source files, and the binaries, are left in the |
| corresponding source directories. |
| |
| `configure' is a Bourne-shell (`/bin/sh') script; if your system |
| does not recognize this automatically when you run a different shell, |
| 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, `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' |
| environment variable) is publicly readable. Remember that GDB uses the |
| shell to start your program--some systems refuse to let GDB debug child |
| processes whose programs are not readable. |
| |
| |
| Compiling GDB in another directory |
| ================================== |
| |
| If you want to run GDB versions for several host or target machines, |
| you need a different `gdb' compiled for each combination of host and |
| target. `configure' is designed to make this easy by allowing you to |
| generate each configuration in a separate subdirectory, rather than in |
| the source directory. If your `make' program handles the `VPATH' |
| feature correctly (GNU `make' and SunOS 'make' are two that should), |
| running `make' in each of these directories builds the `gdb' program |
| specified there. |
| |
| To build `gdb' in a separate directory, run `configure' with the |
| `--srcdir' option to specify where to find the source. (You also need |
| to specify a path to find `configure' itself from your working |
| 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, you can build GDB in a separate |
| directory for a Sun 4 like this: |
| |
| cd gdb-VERSION |
| mkdir ../gdb-sun4 |
| cd ../gdb-sun4 |
| ../gdb-VERSION/configure |
| make |
| |
| When `configure' builds a configuration using a remote source |
| directory, it creates a tree for the binaries with the same structure |
| (and using the same names) as the tree under the source directory. In |
| the example, you'd find the Sun 4 library `libiberty.a' in the |
| directory `gdb-sun4/libiberty', and GDB itself in `gdb-sun4/gdb'. |
| |
| One popular reason to build several GDB configurations in separate |
| directories is to configure GDB for cross-compiling (where GDB runs on |
| one machine--the host--while debugging programs that run on another |
| machine--the target). You specify a cross-debugging target by giving |
| the `--target=TARGET' option to `configure'. |
| |
| When you run `make' to build a program or library, you must run it |
| in a configured directory--whatever directory you were in when you |
| 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-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 |
| directories, you can run `make' on them in parallel (for example, if |
| they are NFS-mounted on each of the hosts); they will not interfere |
| with each other. |
| |
| |
| Specifying names for hosts and targets |
| ====================================== |
| |
| The specifications used for hosts and targets in the `configure' |
| script are based on a three-part naming scheme, but some short |
| predefined aliases are also supported. The full naming scheme encodes |
| three pieces of information in the following pattern: |
| |
| ARCHITECTURE-VENDOR-OS |
| |
| For example, you can use the alias `sun4' as a HOST argument or in a |
| `--target=TARGET' option. The equivalent full name is |
| `sparc-sun-sunos4'. |
| |
| The `configure' script accompanying GDB does not provide any query |
| facility to list all supported host and target names or aliases. |
| `configure' calls the Bourne shell script `config.sub' to map |
| abbreviations to full names; you can read the script, if you wish, or |
| you can use it to test your guesses on abbreviations--for example: |
| |
| % sh config.sub sun4 |
| sparc-sun-sunos4.1.1 |
| % sh config.sub sun3 |
| m68k-sun-sunos4.1.1 |
| % sh config.sub decstation |
| mips-dec-ultrix4.2 |
| % sh config.sub hp300bsd |
| m68k-hp-bsd |
| % sh config.sub i386v |
| i386-pc-sysv |
| % sh config.sub i786v |
| Invalid configuration `i786v': machine `i786v' not recognized |
| |
| `config.sub' is also distributed in the GDB source directory. |
| |
| |
| `configure' options |
| =================== |
| |
| Here is a summary of the `configure' options and arguments that are |
| most often useful for building GDB. `configure' also has several other |
| options not listed here. There are many options to gdb's `configure' |
| script, some of which are only useful in special situation. |
| *note : (autoconf.info)Running configure scripts, for a full |
| explanation of `configure'. |
| |
| configure [--help] |
| [--prefix=DIR] |
| [--srcdir=PATH] |
| [--target=TARGET] |
| [--host=HOST] |
| [HOST] |
| |
| You may introduce options with a single `-' rather than `--' if you |
| prefer; but you may abbreviate option names if you use `--'. Some |
| more obscure GDB `configure' options are not listed here. |
| |
| `--help' |
| Display a quick summary of how to invoke `configure'. |
| |
| `-prefix=DIR' |
| Configure the source to install programs and files under directory |
| `DIR'. |
| |
| `--srcdir=PATH' |
| *Warning: using this option requires GNU `make', or another `make' |
| that compatibly implements the `VPATH' feature.* |
| Use this option to make configurations in directories separate |
| from the GDB source directories. Among other things, you can use |
| this to build (or maintain) several configurations simultaneously, |
| in separate directories. `configure' writes configuration |
| specific files in the current directory, but arranges for them to |
| use the source in the directory PATH. `configure' will create |
| 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. |
| |
| `--target=TARGET' |
| Configure GDB for cross-debugging programs running on the specified |
| TARGET. Without this option, GDB is configured to debug programs |
| that run on the same machine (HOST) as GDB itself. |
| |
| There is no convenient way to generate a list of all available |
| targets. |
| |
| `--enable-targets=TARGET,TARGET,...' |
| `--enable-targets=all` |
| Configure GDB for cross-debugging programs running on the |
| specified list of targets. The special value `all' configures |
| GDB for debugging programs running on any target it supports. |
| |
| `--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). |
| |
| `--with-curses' |
| Use the curses library instead of the termcap library, for |
| text-mode terminal operations. |
| |
| `--with-debuginfod' |
| Build GDB with libdebuginfod, the debuginfod client library. Used |
| to automatically fetch source files and separate debug files from |
| debuginfod servers using the associated executable's build ID. |
| Enabled by default if libdebuginfod is installed and found at |
| configure time. debuginfod is packaged with elfutils, starting |
| with version 0.178. You can get the latest version from |
| 'https://sourceware.org/elfutils/'. |
| |
| `--with-libunwind-ia64' |
| Use the libunwind library for unwinding function call stack on ia64 |
| target platforms. |
| See http://www.nongnu.org/libunwind/index.html for details. |
| |
| `--with-system-readline' |
| Use the readline library installed on the host, rather than the |
| library supplied as part of GDB. Readline 7 or newer is required; |
| this is enforced by the build system. |
| |
| `--with-system-zlib |
| Use the zlib library installed on the host, rather than the |
| library supplied as part of GDB. |
| |
| `--with-expat' |
| Build GDB with Expat, a library for XML parsing. (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-libiconv-prefix[=DIR]' |
| Build GDB with GNU libiconv, a character set encoding conversion |
| library. This is not done by default, as on GNU systems the |
| `iconv' that is built in to the C library is sufficient. If your |
| host does not have a working `iconv', you can get the latest |
| version of GNU iconv from `https://www.gnu.org/software/libiconv/'. |
| |
| GDB's build system also supports building GNU libiconv as part of |
| the overall build. See the GDB manual instructions on how to do |
| this. |
| |
| `--with-lzma' |
| Build GDB with LZMA, a compression library. (Done by default if |
| liblzma is installed and found at configure time.) LZMA is used |
| by GDB's "mini debuginfo" feature, which is only useful on |
| platforms using the ELF object file format. If your host does |
| not have liblzma installed, you can get the latest version from |
| `https://tukaani.org/xz/'. |
| |
| `--with-libgmp-prefix=DIR' |
| Build GDB using the GMP library installed at the directory DIR. |
| If your host does not have GMP installed, you can get the latest |
| version at `https://gmplib.org/'. |
| |
| `--with-mpfr' |
| Build GDB with GNU MPFR, a library for multiple-precision |
| floating-point computation with correct rounding. (Done by |
| default if GNU MPFR is installed and found at configure time.) |
| This library is used to emulate target floating-point arithmetic |
| during expression evaluation when the target uses different |
| floating-point formats than the host. If GNU MPFR is not |
| available, GDB will fall back to using host floating-point |
| arithmetic. If your host does not have GNU MPFR installed, you |
| can get the latest version from `https://www.mpfr.org/'. |
| |
| `--with-python[=PYTHON]' |
| 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.6. The optional argument |
| PYTHON is used to find the Python headers and libraries. It can |
| be either the name of a Python executable, or the name of the |
| directory in which Python is installed. |
| |
| `--with-guile[=GUILE]' |
| Build GDB with GNU Guile scripting support. (Done by default if |
| libguile is present and found at configure time.) If your host |
| does not have Guile installed, you can find it at |
| `https://www.gnu.org/software/guile/'. The optional argument |
| GUILE can be a version number, which will cause `configure' to |
| try to use that version of Guile; or the file name of a |
| `pkg-config' executable, which will be queried to find the |
| information needed to compile and link against Guile. |
| |
| `--enable-source-highlight' |
| When printing source code, use source highlighting. This requires |
| libsource-highlight to be installed and is enabled by default |
| if the library is found. |
| |
| `--with-xxhash' |
| Use libxxhash for hashing. This has no user-visible effect but |
| speeds up various GDB operations such as symbol loading. Enabled |
| by default if libxxhash is found. |
| |
| `--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. |
| |
| `--with-system-gdbinit-dir=DIR' |
| Configure GDB to automatically load system-wide init files from |
| a directory. Files with extensions `.gdb', `.py' (if Python |
| support is enabled) and `.scm' (if Guile support is enabled) are |
| supported. DIR should be an absolute directory name. If DIR 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 directory will be adjusted accordingly. |
| |
| `--enable-build-warnings' |
| When building the GDB sources, ask the compiler to warn about any |
| code which looks even vaguely suspicious. It passes many |
| different warning flags, depending on the exact version of the |
| compiler you are using. |
| |
| `--enable-werror' |
| Treat compiler warnings as werrors. It adds the -Werror flag to |
| the compiler, which will fail the compilation if the compiler |
| outputs any warning messages. |
| |
| `--enable-ubsan' |
| Enable the GCC undefined behavior sanitizer. By default this is |
| disabled in GDB releases, but enabled when building from git. |
| The undefined behavior sanitizer checks for C++ undefined |
| behavior. It has a performance cost, so if you are looking at |
| GDB's performance, you should disable it. |
| |
| `--enable-unit-tests[=yes|no]' |
| Enable (i.e., include) support for unit tests when compiling GDB |
| and GDBServer. Note that if this option is not passed, GDB will |
| have selftests if it is a development build, and will *not* have |
| selftests if it is a non-development build. |
| |
| `configure' accepts other options, for compatibility with configuring |
| other GNU tools recursively. |
| |
| |
| 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 directory gdbserver/ contains `gdbserver', a program that |
| allows remote debugging for Unix applications. GDBserver is only |
| supported for some native configurations. |
| |
| The file 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). |
| |
| |
| Reporting Bugs in GDB |
| ===================== |
| |
| There are several ways of reporting bugs in GDB. The prefered |
| method is to use the World Wide Web: |
| |
| http://www.gnu.org/software/gdb/bugs/ |
| |
| As an alternative, the bug report can be submitted, via e-mail, to the |
| address "bug-gdb@gnu.org". |
| |
| 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 supports so many |
| different configurations, it is important that you be precise about |
| this. The simplest way to do this is to include the output from these |
| commands: |
| |
| % gdb --version |
| % gdb --config |
| |
| For more information on how/whether to report bugs, see the |
| Reporting Bugs chapter of the GDB manual (gdb/doc/gdb.texinfo). |
| |
| |
| Graphical interface to GDB -- X Windows, MS Windows |
| ========================== |
| |
| Several graphical interfaces to GDB are available. You should |
| check: |
| |
| https://sourceware.org/gdb/wiki/GDB%20Front%20Ends |
| |
| 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 information about writing code for GDB in the file |
| `CONTRIBUTE' and at the website: |
| |
| http://www.gnu.org/software/gdb/ |
| |
| in particular in the wiki. |
| |
| If you are pondering writing anything but a short patch, especially |
| take note of the information about copyrights and copyright assignment. |
| 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 |
| planning to work on something, or at least well ahead of when you |
| think you will be ready to submit the patches. |
| |
| |
| GDB Testsuite |
| ============= |
| |
| 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-VERSION |
| make check-gdb |
| |
| or |
| |
| (2) cd gdb-VERSION/gdb |
| make check |
| |
| or |
| |
| (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. |
| |
| See the DejaGNU documentation for further details. |
| |
| |
| Copyright and License Notices |
| ============================= |
| |
| Most files maintained by the GDB Project contain a copyright notice |
| as well as a license notice, usually at the start of the file. |
| |
| To reduce the length of copyright notices, consecutive years in the |
| copyright notice can be combined into a single range. For instance, |
| the following list of copyright years... |
| |
| 1986, 1988, 1989, 1991-1993, 1999, 2000, 2007, 2008, 2009, 2010, 2011 |
| |
| ... is abbreviated into: |
| |
| 1986, 1988-1989, 1991-1993, 1999-2000, 2007-2011 |
| |
| Every year of each range, inclusive, is a copyrightable year that |
| could be listed individually. |
| |
| |
| (this is for editing this file with GNU emacs) |
| Local Variables: |
| mode: text |
| End: |