GDB-14.1

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

任意

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.

パッケージ構成

インストールプログラム: gcore, gdb, gdbserver, gdb-add-index
インストールライブラリ: libinproctrace.so
インストールディレクトリ: /usr/{include,share}/gdb, /usr/share/doc/gdb-14.1

概略説明

gcore

generates a core dump of a running program

gdb

GNU デバッガー。

gdbserver

GNU デバッガーに対するリモートサーバー。(他端末からのプログラムのデバッグが可能となります。)

gdb-add-index

Allows adding index files to ELF binaries. This speeds up gdb start on large programs.

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.