COBOL for AIX および PL/I for AIX プログラムのデバッグに関係するコンパイラー・オプションには、次のものがあります。
| コンパイラー・オプション | 定義 |
|---|---|
| -g | ソース・コードのデバッグ情報を生成するようコンパイラーに指示 します。作成したコードをデバッグしたい場合は、このオプションを 指定する必要があります。 |
| -qtest | ソース・コードのデバッグ・シンボル情報を生成するようコンパイラーにプロンプトを出します。コードの変数を表示したり変更したりする場合は、このオプションを
指定する必要があります。 -qtest を指定すると、-g も暗黙指定され、行情報に加えてシンボル情報も生成されます。 注: -qtest コンパイラー・オプションは、PL/I for AIX プログラムのデバッグにのみ関連します。
|
これらのコンパイラー・オプションは、IBM XL C/C++ for AIX および IBM XL C/C++ for Linux プログラムのデバッグに関連するものです。 COBOL for AIX プログラムおよび PL/I for AIX プログラムのデバッグに関連するものではありません。
| コンパイラー・オプション | 定義 |
|---|---|
| -g | -g は、ソース・コードのデバッグ情報を生成するようコンパイラーに指示します。 作成したコードをデバッグしたい場合は、このオプションを 指定する必要があります。 コンパイラーでは、以下の拡張 -g レベルもサポートされています。 実行可能ファイルのサイズを小さくし、また一定レベルのデバッグ可能性を維持しつつアプリケーションのパフォーマンスを向上させます (特に -O2 オプションと組み合わせた場合)。 -g9 は -g 機能を提供します。 デバッガーによる可変値の変更がメモリーに書き込まれ、実行可能行はすべてデバッガーによるステップ実行が可能になります。 -g8 は変数のデバッグ情報量を削減します。 デバッガーによって変数値に行われた変更は、メモリーに書き戻すことはできません。 実行可能行はすべて、デバッガーによるステップ実行が可能になります。 -g5 は変数のデバッグ情報量を削減します。 デバッガーによって変数値に行われた変更は、アプリケーション・メモリーに書き戻すことはできません。 -g5 オプションはまた、実行可能行について保存されるデバッグ情報の量を削減します。 各関数の最初の実行可能行と、選択した制御フロー・ステートメントのみ、デバッガーによるステップ実行が可能になります。 その他の行は非実行可能として表示され、デバッガーによるそれらの行のステップスルーは可能になりません。 |
| -qfullpath | すべてのソース・ファイルのフルネームがデバッグ情報に 追加されます。こうすると、デバッガーがソース・ファイルを 見つけるのが簡単になります。 |
| -qheapdebug | 結果のプログラムがデバッグ・ヒープを使用するよう
強制します。ヒープ破壊が発生した場合、デバッガーはそれを検出し、検出されたポイントで
停止することができます。 注: このオプションは AIX でのみサポートされます。
|
| -qlinedebug | コード中の変数を表示できるデバッグ情報の生成を 抑制します。これを指定すると、特に C++ プログラムの場合、結果の実行可能ファイルの サイズを大幅に削減できます。コードを最適化した場合は、 デバッガーが変数値を正しく表示することはできなくなるため、 このオプションをお勧めします。 |
| -qtbtable | すべての関数の終わりでのトレースバック・テーブル の生成を制御します。コードをデバッグする予定の場合、-qtbtable=none を指定することはお勧めしません。 |
| -qdbxextra | 参照されないタイプのデバッグ情報を組み込む
ようコンパイラーに強制します。通常、結果の実行可能ファイルのサイズが非常に大きくなるので、
これを指定することはお勧めしません。 注: このオプションは AIX でのみサポートされます。
|
| -qsmp=noopt | デフォルトでは、-qsmp オプションは、概要が示された関数 (並列領域内のコード) に最適化を適用します。これらの最適化によって、プログラムとデバッグ情報との間に不一致が発生し、概要が示されたコードの実行時に、デバッガーに private 変数と共用ローカル変数の両方について正しくない値が表示されます。-qsmp の代わりに -qsmp=noopt を使用すると、これらの最適化は使用不可になり、並列領域のデバッグが容易になります。 |