|
PGI 製品における F77, F2003, HPF, C, C++ のコンパイラを使用して、シンボリック・デバッガ PGDBG を使用する場合のコンパイル・オプションの例を示します。以下は、pgf95を使用した場合の例ですが、コンパイラのオプションの設定方法は、他の言語コンパイラでも同じです。
|
|
● デバッガを使用するためのシンボリック・デバッグ情報を生成するオプション
|
pgfortran -g test.f
pgfortran -gopt test.f
- -g オプションは、シンボリック・デバッグ情報をオブジェクトファイル上に生成するためのものです。これによって、デバッガ情報が含まれた PGDBG
あるいは Etnus TotalView 等のデバッガを使用する際の実行モジュールが生成されます。
- -g オプションを指定すると、最適化レベルのオプション -O のレベル値が 0 になります。たとえ、-O2 等のオプションを設定しても強制的に -O0
となります。
- -gopt オプションは、デバッグ情報を生成する-gオプションの機能を変更するものです。一般に、−gオプションでは、デフォルトで最適化レベルを下げて実行モジュールが生成されますが、本オプションは、最適化されたコードのデバッギングが可能とするような方法でモジュールが生成されます。-goptはシンボリックデバッグ情報をオブジェクトモジュールの中に付加し、さらに、-gが指定されない時と同じ最適化コードを生成するように、コンパイラに対して指示するものです。(PGI
6.1 以降)
PGI 5.1 以降のシンボリック・デバッグ情報のフォーマットは、新しい共通フォーマットである DWARF2 フォーマットで生成されています。他のデバッガでも利用できる互換性の高いフォーマットです。PGI
コンパイラは旧フォーマットである DWARF1 でもデバッグ情報を生成可能です。この場合は、pgf90 -g -Mdwarf1 と言うオプション設定を行います。
|
|
MPI並列プログラムのデバッギング
MPI プログラムのデバッギングに関しては、こちらの各MPIライブラリの使用法のページで説明しております。
|
|
● デバッガ PGDBG を使用する
|
|
PGDBG は X-window 使用して GUI ベースで分析が可能です。そのための、環境変数等の準備を行います。もし、X-window を利用しない場合は、コマンド・モードでの使用が可能です。
|
PGDBG を動かすシステム上のユーザのログインシェル(.bashrc or .cshrc 等)に
X を表示するマシン名 DISPLAY 環境変数を定義します。
(例)
DISPLAY=mypc.softek.co.jp:0.0 ; export DISPLAY
表示するクライアント(X Server 側)では、X-window を立ち上げ、外部マシンから
のプロトコルを受け入れるためのコマンドを発行します。
xhost +
X-window の Server/Client 方式を取らず、同一のマシンで行う場合は、上記の操作を同一のマシン上で行ってください。
|
デバッグしたい実行モジュールの存在する directory へ移動して、
次のコマンドで、pgdbg を立ち上げます。
pgdbg a.out
これで、X-window 上に デバッガの GUI が表示されます。
OpenMPプログラムのスレッド・デバッッギングの様子

|