[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]  


GDBのインストール

GDBにはインストールのための準備手続きを自動化するconfigureスクリプトがついてきます。 configureを実行後、 makeを実行することでgdbを作成することができます。 (10) GDBディストリビューションには、 GDBを作成するのに必要なすべてのソース・コードが、 単一のディレクトリの下に収められています。 このディレクトリの名前は通常、 `gdb'の後ろにバージョン番号を付加したものです。 例えば、 バージョン4.17 のGDBディストリビューションは、 `gdb-4.17 'というディレクトリに収められています。 このディレクトリには、 以下のものが含まれます。

gdb-4.17 /configure (およびサポート・ファイル)
GDBの設定を行うためのスクリプトと、 そのために必要なすべてのライブラリ
gdb-4.17 /gdb
GDB自身に固有のソース
gdb-4.17 /bfd
Binary File Descriptorライブラリのソース
gdb-4.17 /include
GNUインクルード・ファイル
gdb-4.17 /libiberty
`-liberty'フリー・ソフトウェア・ライブラリのソース
gdb-4.17 /opcodes
opcodeテーブルのライブラリと逆アセンブラのソース
gdb-4.17 /readline
GNUコマンドライン・インターフェイスのソース
gdb-4.17 /glob
GNUファイル名パターン・マッチング・サブルーチンのソース
gdb-4.17 /mmalloc
メモリにマップされるGNU mallocパッケージのソース

GDBの設定と構築を行う最も簡単な方法は、 `gdb-version-number'ソース・ディレクトリからconfigureを実行することです。 ここでの例では、 このディレクトリは`gdb-4.17 'です。 もしまだ`gdb-version-number'ソース・ディレクトリにいないのであれば、 まずそこに移動してください。 続いてconfigureを実行します。 GDBが実行されるプラットフォームの識別子を引数として渡します。 例えば、 以下のようにします。

cd gdb-4.17

./configure host
make

ここで、 hostはGDBが実行されるプラットフォームを識別する識別子です。 例えば`sun4'`decstation'などです (多くの場合hostは省略することができます。 この場合configureはユーザのシステムを調べることによって正しい値を推定しようとします)。 `configure host'の実行後makeを実行することで、 `bfd'`readline'`mmalloc'`libiberty'の各ライブラリが構築され、 最後にgdb自体が構築されます。 設定されたソース・ファイルやバイナリは、 対応するソース・ディレクトリに残されます。 configureはBourneシェル (/bin/sh) のスクリプトです。 ユーザが別のシェルを実行していて、 システムがこのことを自動的に認識してくれない場合は、 明示的にshにスクリプトを実行させる必要があるかもしれません。

sh configure host

バージョン4.17 のソース・ディレクトリである`gdb-4.17 'のように、 配下に複数のライブラリやプログラムのソース・ディレクトリを含むディレクトリからconfigureを実行すると、 configureは配下にあるそれぞれのディレクトリのための設定ファイルを作成します (`--norecursion'オプションによって、 そうしないよう指定した場合は別です)。 GDBディストリビューションの中の特定のサブディレクトリを設定したいだけの場合には、 そのサブディレクトリからconfigureスクリプトを実行することができます。 ただし、 configureスクリプトへのパスを必ず指定してください。 例えば、 バージョン4.17 では、 bfdサブディレクトリだけを設定するには以下のようにします。

cd gdb-4.17
/bfd
../configure host

gdbはどこにでもインストールできます。 あらかじめ固定されたパスは1つもありません。 ただし、 ユーザのパスにある (`SHELL'環境変数により指定される) シェルが誰にでも読み込み可能であることを確かめる必要があります。 GDBはシェルを使ってユーザ・プログラムを起動するということを憶えておいてください。 子プロセスが読み込み不可のプログラムである場合、 システムによっては、 GDBがそれをデバッグするのを拒否します。

異なるディレクトリでのGDBのコンパイル

いくつかのホスト・マシンやターゲット・マシン用のGDBを実行したい場合、 ホストとターゲットの個々の組み合わせ用にコンパイルされた異なるgdbが必要になります。 configureには個々の設定をソース・ディレクトリにではなく個別のサブディレクトリに生成する機能があり、 このようなことが簡単にできるように設計されています。 ユーザの使っているmakeプログラムに`VPATH'機能があれば (GNU makeにはあります)、 これら個々のディレクトリにおいてmakeを実行することで、 そこで指定されているgdbプログラムを構築することができます。 個別のディレクトリにおいてgdbを構築するには、 ソースの置かれている場所を指定するために`--srcdir'オプションを使ってconfigureを実行します (同時に、 ユーザの作業ディレクトリからconfigureを見つけるためのパスも指定する必要があります。 もし、 configureへのパスが`--srcdir'への引数として指定するものと同じであれば、 `--srcdir'オプションは指定しなくてもかまいません。 指定されなければ同じであると仮定されます)。 例えば、 バージョン4.17 でSun 4用に別のディレクトリにおいてGDBを構築するには、 以下のようにします。

cd gdb-4.17

mkdir ../gdb-sun4
cd ../gdb-sun4
../gdb-4.17
/configure sun4
make

configureが、 別の場所にあるソース・ディレクトリを使って、 ある設定を構築する際には、 ソース・ディレクトリ配下のディレクトリ・ツリー (と同じ名前で) 同じ構造のディレクトリ・ツリーをバイナリ用に作成します。 この例では、 Sun 4用のライブラリ`libiberty.a'`gdb-sun4/libiberty'ディレクトリに、 GDB自身は`gdb-sun4/gdb'にそれぞれ作成されます。 いくつかのGDB設定を別々のディレクトリに構築する理由としてよくあるのが、 クロス・コンパイル環境 (そこでは、 GDBはホストと呼ばれるあるマシン上で動作し、 ターゲットと呼ばれる別のマシンで実行されているプログラムをデバッグします) 用にGDBを設定する場合です。 クロス・デバッグのターゲットは、 configureに対する`--target=target'オプションを使って指定します。 プログラムやライブラリを構築するためにmakeを実行するときには、 設定されたディレクトリにいなければなりません。 これは、 configureを実行したときにいたディレクトリ (もしくは、そのサブディレクトリの1つ) です。 configureが個別のソース・ディレクトリに生成したMakefileは再帰的に呼び出されます。 `gdb-4.17 ' (あるいは、 `--srcdir=dirname/gdb-4.17 'により設定された別のディレクトリ) のようなソース・ディレクトリにおいてmakeを実行すると、 必要とされるすべてのライブラリが構築され、 続いてGDBが構築されることになります。 複数のホストもしくはターゲットの設定が、 異なる複数のディレクトリに存在する場合、 (例えば、 それらが個々のホスト上にNFSマウントされていれば) 並行してmakeを実行することができます。 複数の設定が互いに干渉し合うということはありません。

ホストとターゲットの名前の指定

configureスクリプトにおけるホスト、 ターゲットの仕様は、 3つの名称部分により構成されるものですが、 あらかじめ定義された別名もいくつかサポートされています。 完全名は、 以下のようなパターンの3つの情報部分を持ちます。

architecture-vendor-os

例えば、 --target=targetオプションのtargetの部分に、 あるいは、 ホストを指定する引数hostとして、 sun4という別名を使うことができます。 これと同等の完全名は`sparc-sun-sunos4'です。 GDBについてくるconfigureスクリプトには、 サポートされているすべてのホスト名、 ターゲット名、 別名を問い合わせするための機能はありません。 configureはBourneシェル・スクリプトのconfig.subを呼んで、 省略名を完全名に対応付けします。 これを使って、 省略名の意味がユーザの推測したものと合っているかどうかをテストすることもできます。 以下に例を示します。

% sh config.sub sun4
sparc-sun-sunos4.1.1
% sh config.sub sun3
m68k-sun-sunos4.1.1
% sh config.sub decstation
mips-dec-ultrix4.2
% sh config.sub hp300bsd
m68k-hp-bsd
% sh config.sub i386v
i386-unknown-sysv
% sh config.sub i786v
Invalid configuration `i786v': machine `i786v' not recognized

config.subもGDBディストリビューションの一部としてソース・ディレクトリ (バージョン4.17 では、`gdb-4.17 ') に入っています。

configureオプション

以下に、 GDBを構築する上で最もよく役に立つconfigureのオプション、 引数の要約を示します。 configureには、 ここには挙げられていないオプションもいくつかあります。 configureに関する完全な説明については、 See Info file `configure.info', node `What Configure Does'。

configure [--help]
          [--prefix=dir]
          [--srcdir=dirname]
          [--norecursion] [--rm]
          [--target=target] host

`--'ではなく単一の`-'でオプションを始めることもできますが、 `--'を使うとオプション名を省略することができます。

--help
configureの実行方法の簡単な要約を表示します。
-prefix=dir
プログラムおよびファイルをディレクトリ`dir'にインストールするようソースを設定します。
--srcdir=dirname
注意: このオプションを使うには、 GNU makeもしくはVPATH機能を持つ他のmakeを使用する必要があります。
GDBソース・ディレクトリとは別のディレクトリにおいて設定を構築する場合に、 このオプションを使用します。 特に、 いくつかの設定を別々のディレクトリにおいて同時に構築(かつ維持)する場合に、 このオプションを使うことができます。 configureは設定に固有のファイルをカレント・ディレクトリにおいて書き込みますが、 dirnameディレクトリにあるソースを使うように、 それらのファイルを調整します。 configuredirnameディレクトリの配下のソース・ディレクトリに対応するディレクトリを作業ディレクトリの下に作成します。
--norecursion
configureが実行されたディレクトリのみを設定します。 サブディレクトリまで含めて設定することはしません。
--rm
設定の途中で作成され、このオプションを指定しないと作成されたまま残されるファイルを削除します。
--target=target
指定されたターゲットtargetで実行するプログラムをクロス・デバッグするためにGDBを設定します。 このオプションを指定しないと、 GDBと同じマシン (ホスト) で実行されるプログラムをデバッグするようGDBは設定されます。 利用可能なすべてのターゲットの一覧を生成する便利な方法はありません。
host ...
指定されたホストhost上で実行されるようGDBを設定します。 利用可能なすべてのホストの一覧を生成する便利な方法はありません。

configureはこれ以外のオプションも受け付けます。 しかし、 それは他のGNUツールを再帰的に設定する場合に問題が発生しないようにするためです。 ここに挙げたオプションだけが、 GDBおよびその支援ライブラリに影響を与えます。


[Contents]   [Back]   [Prev]   [Up]   [Next]   [Forward]