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.
This package is known to build and work properly using an LFS 12.0
platform.
Package Information
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.7, GCC-13.2.0 (ada, gfortran, and go are used
for tests), Guile-3.0.9, rustc-1.71.1 (used for some tests),
Valgrind-3.21.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.7, 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.