Debugging with GDB: Running Configure |
---|
Next: Separate Objdir, Previous: Requirements, Up: Installing GDB [Contents][Index]
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, whose name is usually composed by appending the version number to ‘gdb’.
For example, the GDB version 8.1 distribution is in the gdb-8.1 directory. That directory contains:
gdb-8.1/configure (and supporting files)
script for configuring GDB and all its supporting libraries
gdb-8.1/gdb
the source specific to GDB itself
gdb-8.1/bfd
source for the Binary File Descriptor library
gdb-8.1/include
GNU include files
gdb-8.1/libiberty
source for the ‘-liberty’ free software library
gdb-8.1/opcodes
source for the library of opcode tables and disassemblers
gdb-8.1/readline
source for the GNU command-line interface
gdb-8.1/glob
source for the GNU filename pattern-matching subroutine
gdb-8.1/mmalloc
source for the GNU memory-mapped malloc package
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-8.1 directory.
First switch to the gdb-version-number source directory if you are not already in it; then run configure. Pass the identifier for the platform on which GDB will run as an argument.
For example:
cd gdb-8.1 ./configure host make
where host is an identifier such as ‘sun4’ or ‘decstation’, that identifies the platform where GDB will run. (You can often leave off host; configure tries to guess the correct value by examining your system.)
Running ‘configure host
’ and then running 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 host
If you run configure from a directory that contains source directories for multiple libraries or programs, such as the gdb-8.1 source directory for version 8.1, configure creates configuration files for every directory level underneath (unless you tell it not to, with the ‘--norecursion’ option).
You should run the configure script from the top directory in the source tree, the gdb-version-number directory. If you run configure from one of the subdirectories, you will configure only that subdirectory. That is usually not what you want. In particular, if you run the first configure from the gdb subdirectory of the gdb-version-number directory, you will omit the configuration of bfd, readline, and other sibling directories of the gdb subdirectory. This leads to build errors about missing include files such as bfd/bfd.h.
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.
Next: Separate Objdir, Previous: Requirements, Up: Installing GDB [Contents][Index]