GDB-8.3
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-9.0
platform.
Package Information
GDB Dependencies
Recommended Runtime Dependency
six-1.12.0 (Python 3 module, required at run-time
to use GDB scripts from various LFS/BLFS packages with Python 3
installed in LFS)
Optional
DejaGnu-1.6.2 (required for tests), Doxygen-1.8.16, GCC-9.2.0 (ada and gfortran are
used for tests), Guile-2.2.6, Python-2.7.16, rustc-1.35.0 (used for some
tests), Valgrind-3.15.0, and SystemTap (run-time, used
for tests)
User Notes: http://wiki.linuxfromscratch.org/blfs/wiki/gdb
Installation of GDB
Install GDB by running the
following commands:
./configure --prefix=/usr \
--with-system-readline \
--with-python=/usr/bin/python3 &&
make
Optionally, to build the API documentation using Doxygen-1.8.16, 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.
-
There are a large number of timeouts (there is a variable
that can be set to increase time for timeout, but changing it
will result in a different number of tests being run).
-
There are failures associated with system readline 6.x.
-
A few tests assume that the header file <sys/sdt.h>
, part of SystemTap, is
present.
-
If the test suite is run on a Skylake-based Intel CPU or
newer, many tests will fail due to the removal of the
deprecated/problematic libmpx library in GCC.
-
Approximately 1-3% of the tests fail (out of over 56000
tests).
Now, as the root
user:
make -C gdb 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-8.3 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-8.3
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
installed in LFS. Remove this switch if you have installed
Python-2.7.16 and want to use it instead of
Python 3.
Contents
Installed Programs:
gcore, gdb and gdbserver
Installed Library:
libinproctrace.so
Installed Directories:
/usr/{include,share}/gdb and
/usr/share/doc/gdb-8.3
Short Descriptions
gcore
|
generates a core dump of a running program.
|
gdb
|
is the GNU Debugger.
|
gdbserver
|
is a remote server for the GNU debugger (it allows
programs to be debugged from a different machine).
|
libinproctrace.so
|
contains functions for the in-process tracing agent. The
agent allows for installing fast tracepoints, listing
static tracepoint markers, probing static tracepoints
markers, and starting trace monitoring.
|
Last updated on 2019-08-16 23:26:32 -0700