Introduction to GDB
GDB, the GNU Project debugger, allows you
to see what is going on “inside” another program while it
executes -- or what another program was doing at the moment it crashed.
Note that GDB is most effective when tracing
programs and libraries that were built with debugging symbols and not
stripped.
Note
Development versions of BLFS may not build or run
some packages properly if LFS or dependencies have been updated
since the most recent stable versions of the books.
Package Information
Download (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-13.2.tar.xz
Download MD5 sum: fbd3cdae16c581e8a742cb766ba35076
Download size: 23 MB
Estimated disk space required: 914 MB (add 805 MB for docs; add 575 MB for tests)
Estimated build time: 2.1 SBU (add 0.4 SBU for docs; add 18 SBU for tests; all using parallelism=4)
GDB Dependencies
Recommended Runtime Dependency
six-1.16.0 (Python 3 module, required at run-time to
use GDB scripts from various LFS/BLFS packages with Python 3
installed in LFS)
Optional
Doxygen-1.9.8,
GCC-13.2.0 (ada, gfortran, and go are used for tests),
Guile-3.0.9,
rustc-1.74.0 (used for some tests),
Valgrind-3.22.0, and
SystemTap
(run-time, used for tests)
Installation of GDB
Install GDB by running the following
commands:
mkdir build &&
cd build &&
../configure --prefix=/usr \
--with-system-readline \
--with-python=/usr/bin/python3 &&
make
Optionally, to build the API documentation using
Doxygen-1.9.8, run:
make -C gdb/doc doxy
To test the results, issue:
pushd gdb/testsuite &&
make site.exp &&
echo "set gdb_test_timeout 120" >> site.exp &&
runtest
popd
See gdb/testsuite/README and TestingGDB.
There are many problems with the test suite:
Clean directories are needed if re-running the tests. For that
reason, make a copy of the compiled source code
directory before the tests in case you need to run the tests again.
Results depend on installed compilers.
A test run of the test suite had 183 unexpected failures
out of over 105000 tests.
On some systems, the gdb.tui test suite will fail if running over
SSH.
On some AMD-based systems, over 200 additional tests
may fail due to a difference in the threading implementation
on those CPUs.
Now, as the root
user:
make -C gdb install &&
make -C gdbserver install
If you have built the API documentation, it is now in gdb/doc/doxy.
You can install it (as the root
user):
install -d /usr/share/doc/gdb-13.2 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-13.2
Command Explanations
--with-system-readline
: This switch forces
GDB to use the copy of
Readline installed in LFS.
--with-python=/usr/bin/python3
: This switch
forces GDB to use Python 3.