「インストール - GDB」の版間の差分

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

 
(同じ利用者による、間の3版が非表示)
11行目: 11行目:


== 依存関係のライブラリのインストール ==
== 依存関係のライブラリのインストール ==
==== パッケージ管理システムの使用 ====
GDBの依存関係のライブラリをインストールする。<br>
GDBの依存関係のライブラリをインストールする。<br>
  # RHEL
  # RHEL
20行目: 21行目:
                     xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel
                     xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel
<br>
<br>
<u>Texinfoをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールすることを推奨する。</u><br>
==== Texinfoを手動でインストールする場合 ====
<u>Texinfoをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。</u><br>
# まず、Texinfoの[https://ftp.gnu.org/gnu/texinfo/ 公式Webサイト]から、Texinfoをダウンロードする。
# まず、Texinfoの[https://ftp.gnu.org/gnu/texinfo/ 公式Webサイト]から、Texinfoをダウンロードする。
# 次に、Texinfoを解凍して、Texinfoディレクトリ直下にbuildディレクトリを作成する。
# 次に、Texinfoを解凍して、Texinfoディレクトリ直下にbuildディレクトリを作成する。
33行目: 35行目:
  make install
  make install
  </syntaxhighlight>
  </syntaxhighlight>
# .profileファイルまたは.bashrcファイル等に、以下の環境変数を追記する。
# ~/.profileファイル等に、以下に示す環境変数を設定する。
#: <syntaxhighlight lang="sh">
#: <syntaxhighlight lang="sh">
  export PATH="/<Texinfoのインストールディレクトリ>/bin:$PATH"
  export PATH="/<Texinfoのインストールディレクトリ>/bin:$PATH"
41行目: 43行目:


== GDBのインストール ==
== GDBのインストール ==
==== 1. 共通 ====
==== 共通 ====
[https://ftp.gnu.org/gnu/gdb/ GDBの公式Webサイト]から、GDBのソースコードをダウンロードする。<br>
[https://ftp.gnu.org/gnu/gdb/ GDBの公式Webサイト]から、GDBのソースコードをダウンロードする。<br>
または、以下のコマンドを実行してダウンロードする。<br>
または、以下のコマンドを実行してダウンロードする。<br>
63行目: 65行目:
  export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
  export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")
<br>
<br>
==== 2-1. ネイティブ向け ====
==== ネイティブ向け ====
GDBをビルドおよびインストールする。<br>
GDBをビルドおよびインストールする。<br>
  ../configure --prefix="$HOME/InstallSoftware/GDB/GDB-<バージョン名>" \
  ../configure --prefix="$HOME/InstallSoftware/GDB/GDB-<バージョン名>" \
75行目: 77行目:
  make -C gdb install  # 最小限のGDBのみインストールする場合
  make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
<br>
==== 2-2. AArch64 クロスコンパイラ向け ====
==== AArch64 クロスコンパイラ向け ====
GDBをビルドおよびインストールする。<br>
GDBをビルドおよびインストールする。<br>
  export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin:$PATH" && \
  export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin:$PATH" && \
93行目: 95行目:
  make -C gdb install  # 最小限のGDBのみインストールする場合
  make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
<br>
==== 2-3. H8/300 クロスコンパイラ向け ====
==== H8/300 クロスコンパイラ向け ====
GDBをビルドおよびインストールする。<br>
GDBをビルドおよびインストールする。<br>
  export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin$PATH" && \
  export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin$PATH" && \
110行目: 112行目:
  make -C gdb install  # 最小限のGDBのみインストールする場合
  make -C gdb install  # 最小限のGDBのみインストールする場合
<br>
<br>
==== 3. 共通 ====
==== パスの設定 ====
必要に応じて、~/.profileファイル等に環境変数を設定する。<br>
必要に応じて、~/.profileファイル等に環境変数を設定する。<br>
  <syntaxhighlight lang="sh">
  <syntaxhighlight lang="sh">
120行目: 122行目:
== 警告およびエラー ==
== 警告およびエラー ==
以下に示すような警告が出力される場合がある。<br>
以下に示すような警告が出力される場合がある。<br>
  warning: File "/home/<ユーザ名>/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
  warning: File "/path/to/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".
<br>
<br>
この時、~/.gdbinitファイルを作成して、以下の設定を記述する。<br>
この時、~/.gdbinitファイルを作成して、以下の設定を記述する。<br>

2025年12月23日 (火) 00:35時点における最新版

概要

GDBとは、UNIX系OSで標準的に利用されるデバッガの1つである。

実行形式のファイルを指定して起動すると、プログラムの実行を開始して、実行状態の監視や介入が可能となる。
特定の時点における変数などの値の表示や代入、特定の位置を指定して実行を停止(ブレークポイント)、
1命令ずつ停止させて実行(ステップ実行)等の機能を、対話的なコマンドラインインターフェースで利用することができる。

また、GDBを直接介した実行だけでなく、OS上で既に実行されているプロセスを指定して制御する(アタッチする)こともできる。
別のコンピュータ上で実行されているプログラムをデバッグする遠隔モードもあるため、組み込みソフトウェアの開発やLinuxカーネル開発などにも用いられる。


依存関係のライブラリのインストール

パッケージ管理システムの使用

GDBの依存関係のライブラリをインストールする。

# RHEL
sudo dnf install bison m4 flex gawk wget make texinfo gcc gcc-c++ python3-devel \
                 xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel

# SUSE
sudo zypper install bison m4 flex gawk wget texinfo make gcc gcc-c++ python3-devel \
                    xz-devel xxhash-devel gmp-devel mpfr-devel mpc-devel isl-devel


Texinfoを手動でインストールする場合

Texinfoをパッケージ管理システムを使用してインストールする場合は膨大な時間が掛かるため、手動でインストールしてもよい。

  1. まず、Texinfoの公式Webサイトから、Texinfoをダウンロードする。
  2. 次に、Texinfoを解凍して、Texinfoディレクトリ直下にbuildディレクトリを作成する。
    mkdir build
  3. Texinfoをビルドおよびインストールするため、以下のコマンドを実行する。
     ../configure --prefix=/<Texinfoのインストールディレクトリ>
     
     make -j $(nproc)
     make TEXMF=/<Texinfoのインストールディレクトリ>/texmf
          install-tex
     make install
    
  4. ~/.profileファイル等に、以下に示す環境変数を設定する。
     export PATH="/<Texinfoのインストールディレクトリ>/bin:$PATH"
     export LD_LIBRARY_PATH="/<Texinfoのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"
    



GDBのインストール

共通

GDBの公式Webサイトから、GDBのソースコードをダウンロードする。
または、以下のコマンドを実行してダウンロードする。

wget https://ftp.gnu.org/gnu/gdb/gdb-<バージョン名>.tar.xz


ダウンロードしたファイルを解凍して、解凍したディレクトリに移動する。

tar xf gdb-<バージョン名>.tar.xz
cd gdb-<バージョン名>


ビルドディレクトリを作成する。

mkdir build && cd build


※注意
Qt Creatorにおいて、ユーザが個別にインストールしたGDBを使用する場合は、
GDBをコンパイルする時に、以下に示すように、Pythonの実行ファイルとライブラリのパスを指定する必要がある。

[ -z "$PYTHON" ] && export PYTHON=<Python3の実行ファイルのフルパス>; \
export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")

例.
[ -z "$PYTHON" ] && export PYTHON=$HOME/Python/bin/python3.8; \
export PYTHON_LIBDIR=$("$PYTHON" -c "import sysconfig; print(sysconfig.get_config_var('LIBDIR'))")


ネイティブ向け

GDBをビルドおよびインストールする。

../configure --prefix="$HOME/InstallSoftware/GDB/GDB-<バージョン名>" \
             --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR" \
             --program-suffix=<サフィックス  例. _12_1>  # 必要であれば、パッケージ管理システムのGDBと名前が重複しないようにすることも可能

make -j $(nproc)

make install         # 全てインストールする場合
# または
make -C gdb install  # 最小限のGDBのみインストールする場合


AArch64 クロスコンパイラ向け

GDBをビルドおよびインストールする。

export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin:$PATH" && \
../configure --prefix=<AArch64クロスコンパイラ向けGCCのインストールディレクトリ> \
             --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=aarch64-linux-gnu \
             --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR -static-libstdc++" \
             --disable-multilib --disable-nls \
             --with-sysroot=<ターゲットのシステムルートディレクトリ>  \  # 不要の可能性あり
             CFLAGS="-g0 -O3 -fstack-protector-strong"    \   # 不要の可能性あり
             CXXFLAGS="-g0 -O3 -fstack-protector-strong"  \   # 不要の可能性あり
             --program-suffix=<サフィックス  例. _12_1>           # 複数のGDBと名前が重複しないようにすることも可能

make -j $(nproc)

make install         # 全てインストールする場合
# または
make -C gdb install  # 最小限のGDBのみインストールする場合


H8/300 クロスコンパイラ向け

GDBをビルドおよびインストールする。

export PATH="/<AArch64向けBinutisおよびAArch64向けGCCのインストールディレクトリ>/bin$PATH" && \
             ../configure --prefix=<AArch64クロスコンパイラ向けGCCのインストールディレクトリ> \
             --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=h8300-elf \
             --with-python="$PYTHON" LDFLAGS="-L$PYTHON_LIBDIR -static-libstdc++" \
             --disable-multilib --disable-nls \
             CFLAGS="-g0 -O3 -fstack-protector-strong"    \   # 不要の可能性あり
             CXXFLAGS="-g0 -O3 -fstack-protector-strong"  \   # 不要の可能性あり
             --program-suffix=<サフィックス  例. _12_1>           # 複数のGDBと名前が重複しないようにすることも可能

make -j $(nproc)

make install         # 全てインストールする場合
# または
make -C gdb install  # 最小限のGDBのみインストールする場合


パスの設定

必要に応じて、~/.profileファイル等に環境変数を設定する。

 export PATH="/<GDBのインストールディレクトリ>/bin:$PATH"
 export LD_LIBRARY_PATH="/<GDBのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"



警告およびエラー

以下に示すような警告が出力される場合がある。

warning: File "/path/to/.gdbinit" auto-loading has been declined by your `auto-load safe-path' set to "$debugdir:$datadir/auto-load".


この時、~/.gdbinitファイルを作成して、以下の設定を記述する。

vi ~/.gdbinit


# ~/.gdbinitファイル

set auto-load safe-path .  # ディレクトリごとに.gdbinitファイルを読み込む場合
# または
set auto-load safe-path /  # システム上のどこからでも.gdbinitファイルを読み込むする場合