GDB の概要
GDB (GNU プロジェクトデバッガー; the GNU
Project debugger) は、プログラム実行時に '内部' にて何が起こっているかを調べるものです。
あるいはそのプログラムがクラッシュする時に何が起きていたかを調べることもできます。 GDB
によりプログラムやライブラリを効果的にトレースするには、そのプログラムやライブラリをデバッグシンボル付きでビルドし、ストリップしていないことが必要となります。
注記
LFS や依存パッケージが本ブックに示す最新安定バージョンでなかった場合には、BLFS
開発版においては、パッケージのビルドや処理実行が適切に行われないことがあります。
パッケージ情報
-
ダウンロード (HTTP): https://ftp.gnu.org/gnu/gdb/gdb-14.1.tar.xz
-
ダウンロード MD5 sum: 4a084d03915b271f67e9b8ea2ab24972
-
ダウンロードサイズ: 23 MB
-
必要ディスク容量: 966 MB (ドキュメント生成時はさらに 729 MB; テスト実施時はさらに 538 MB)
-
概算ビルド時間: 2.1 SBU (ドキュメント生成時はさらに 0.4 SBU, テスト実施時はさらに 18 SBU,
いずれも parallelism=4 利用)
GDB の依存パッケージ
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)
任意
Doxygen-1.9.8, GCC-13.2.0 (ada, gfortran, and go are used
for tests), Guile-3.0.9, rustc-1.74.1 (used for some tests),
Valgrind-3.22.0, SystemTap
(実行時での依存、テスト内にて利用するものもあり)
GDB のインストール
以下のコマンドを実行して gdb をビルドします。
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
ビルド結果をテストする場合は以下を実行します。
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 51 unexpected failures out
of the over 106000 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.
root
ユーザーになって以下を実行します。
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-14.1 &&
rm -rf gdb/doc/doxy/xml &&
cp -Rv gdb/doc/doxy /usr/share/doc/gdb-14.1
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.