このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

4.5 アプリケーションのデバッグ

Oracle Linuxには、ソフトウェアのデバッグに使用できる強力なツールが多数あります。 これらのデバッギング・ツールは、次のカテゴリに大きく分類できます。

  • カーネルモード・デバッガ: CPUの特権モードで実行されるコードをデバッグできます。 カーネル・モジュールの例には、ファイル・システム・カーネル・モジュール、デバイス・ドライバなどがあります。

    printk()文をコードに追加すると、簡単かつ効果的な方法で問題を検出できます。 crashユーティリティを使用すると、ライブ・カーネル、ユーザー・プロセス、システム・ダンプ、メモリー・リークおよびアプリケーション・コア・ダンプを検査できます。 Oracle Linuxに付属のカーネルはstripされているので、Oracle Linuxでkdbデバッガまたはkdbgデバッガを使用する場合は、stripされていないカーネルをビルドする必要があります。

  • ユーザー・モード・デバッガ: CPUの非特権モードで実行されるコードをデバッグできます。 ユーザー・アプリケーションがユーザー・モードで実行され、システム・コール経由でカーネルと対話します。 カーネル・モードで実行されるコードとユーザー・モードで実行されるコードは異なるアドレス空間を所有します。

    また、GDBを使用して、ANSI CおよびC++で記述されたプログラムのソースレベルのシンボリック・デバッグと実行に対応することもできます(その他のプログラミング言語は部分的にサポートされています)。 GDBの便利な機能には、ソース行またはマシン命令を一度に1つずつ実行する、プログラムのステップ実行機能などがあります。 また、プログラムの動作を単に表示する以外に、変数を操作したり、様々な式を評価して表示することもできます。 プログラム、実行中のプロセスまたはコア・ファイルをデバッグできます。 GDBを効果的に使用するには、-gコンパイラ・フラグを付けてソース・コードをビルドし、デバッグ・バイナリを作成します。 すべてのデバッグ情報を取得するには、コンパイラの最適化を選択しないことも必要です。 最適化されたコードでは、部分的なデバッグしかサポートされません。 GDBでは、ネイティブ・ソース・ファイルを変更して再コンパイルすれば、プログラム全体を再ビルドしなくても実行を続行できます。 コード修正を行った場所から実行を再開できます。 デバッグを続行するのに、再リンクや再ロードは不要です。 また、スレッド間の移動、スレッドの一時停止、スレッドのステップ実行、スタックやロックの表示もできます。