『実践 デバッグ技法』サンプルプログラム集

本ディレクトリには、『実践 デバッグ技法』の本文に記載されている ソースコードの一部が含まれています。

本ドキュメントは、ソースコードの使い方について説明します。

■構成

ch01~ch08/には、それぞれ、1章~8章に記載されているソースコードが 収録されています。ただし、本文上で故意にバグが混入されたソースコードは、 buggy/というサブディレクトリに収録されています。ch01~ch08直下の ソースコードは、バグが修正されたものになっています。

■準備

事前に、下記のソフトウェアをインストールしておく必要があります。

●MPICH

5.3.1節に MPICH を用いた例があります。

MPICHは、

http://www.mcs.anl.gov/research/projects/mpi/mpich1/download.html

から入手できます。

mpich.tar.gz

をダウンロードしたら、下記のようにインストールします。

$ tar xvzf mpich.tar.gz
$ cd mpich-1.2.7p1
$ ./configure -prefix=/usr/local/mpi -rsh=ssh
$ make
$ sudo make install

※ インストールパス が/usr/local/mpi でない場合には、 ch05/Makefile の冒頭

MPIBIN = /usr/local/mpi/bin

を実際のパスに合わせて修正して下さい。

●splint

7.5節で、splint を用います。各種Linux用にパッケージが用意されているので、 例えば次のようにインストールできます。

$ yum install splint

●ElectricFence

7.6.2節で、ElectricFence を用います。これも、次のようにインストールできます。

$ yum install ElectricFence

●mtrace

7.6.3.3節で、mtrace を用います。スクリプトmtraceがない場合は、

$ yum install glibc-utils

のように追加ユーティリティをインストールします。

●gcj

8.1.1節では、gcj を用いてJavaのソースをコンパイルします。

コンパイラ gcc-javaと、ライブラリと開発キット libgcj-develが必要です。

$yum install gcc-java libgcj-devel

●SWIG

8.4節では、SWIGを用いてPythonの機能を拡張します。

SWIGのパッケージの他に、Pythonの開発パッケージも必要です。

$yum install swig
$yum install python-devel

■コンパイル

このディレクトリで、

$ make

を実行すれば、コンパイルをします。

■実行

このディレクトリで、

$ make test

を実行すると、プログラムを順番に実行していきます。

途中2カ所で、ユーザの入力を求めて止まりますので、 下記のように入力して下さい。

●MPICH の実行

ssh で MPICH で設定したノードにログインするためのパスワードを 2回尋ねてきます。

/usr/local/mpi/bin/mpirun -np 3 primepipe 100 0
user@hostname's password:
user@hostname's password:

MPICHをインストールした直後であれば、localhost にログインする パスワードでOKです。

なお、sshで初めて接続する場合には、ホスト公開鍵を受け入れる かどうかを尋ねてきますので、yesと答えてください。

●psax

6.2.1節の curses ライブラリを用いたプログラムです。 [u],[d],[r],[k] 以外のキーを入力すると終了します。

■注意