Linux カーネルのデバッグについて

DS-5 は、Linux カーネルのソースレベルのデバッグをサポートしています。 Linux カーネル(および関連するデバイスドライバ)は標準の ELF 形式の行可能ファイルと同じ方法でデバッグできます。 例えば、ブレークポイントをカーネルコードに設定し、ソースをステップ実行し、コールスタクを確認して、変数を観察できます。

Note

現在マップされていないユーザ空間パラメータ(__user とマークされている)をデバッガが読み出すことはできません。

カーネルをデバッグするには

  1. 以下のオプションを使用して、カーネルソースをコンパイルします。

    • CONFIG_DEBUG_KERNEL=y

    • CONFIG_DEBUG_INFO=y

    • 実行するデバッグのタイプによっては、他のオプションが必要になることがあります。

    カーネルソースをコンパイルすると、デバッグ情報を含む Linux カーネルイメージとシンボルファイルが生成されます。

    Note

    Linux カーネルは常に完全な最適化でコンパイルされ、インライン化が有効になっているので、以下のことに注意して下さい。

    • コードをステップ実行すると、一部の命令が並べ替えられている可能性があるため、予想どおりに動作しないことがあります。

    • 一部の変数がコンパイラによって最適化されて取り除かれる場合があるので、デバッガで使用できません。

  2. Linux カーネルをターゲットにロードします。

  3. カーネルのデバッグ情報をデバッガにロードします。

  4. 必要に応じて、カーネルをデバッグします。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0446IJ
Non-ConfidentialID051512