4.2 デバッガへのデバッグ情報のロードについて

実行可能イメージには、アプリケーションコードとデータに加え、関数名や変数名などのシンボリック参照も含まれています。通常、これらのシンボリック参照はデバッグ情報と呼ばれます。デバッグ情報がないと、デバッガはソースレベルでデバッグすることができません。

ソースレベルでアプリケーションをデバッグするには、デバッグ情報を使用し、適度なレベルの最適化を行って、イメージファイルと共有オブジェクトファイルをコンパイルする必要があります。例えば、 ARM® コンパイラまたは GNU コンパイラのいずれかを使用してコンパイルする場合は、以下の各オプションを使用できます。
-g -O0
デバッグ情報のロードとファイルのロードは別の操作となるため、ファイルのロード時にデバッグ情報はロードされません。典型的なロードの順序は以下のとおりです。
  1. メインアプリケーションのイメージをロードします。
  2. 共有オブジェクトがある場合は、それをロードします。
  3. メインアプリケーションのイメージのシンボルをロードします。
  4. 共有オブジェクトのシンボルをロードします。
デバッグ情報をロードすると、メモリ使用量が増加するため、ロードに時間がかかることがあります。これらの費用を最小限に抑えるには、デバッガによって必要に応じてデバッグ情報を増分的にロードします。これをオンデマンドロードと呼びます。イメージ内のすべてのシンボルを一覧表示するなど、特定の操作を行うと、追加のデータがデバッガにロードされるため、わずかな遅延が発生します。デバッグ情報のロードはオンデマンドでいつでも発生する可能性があります。そのため、イメージからデバッガにアクセス可能な状態が維持されていることを確認する必要があります。また、デバッグセッション中に変更を行わないで下さい。
イメージと共有オブジェクトはターゲットにあらかじめロードされている場合があります。ROM デバイスや OS 認識ターゲットのイメージはその例です。対応するイメージファイルと共有オブジェクトファイル(ある場合)には、デバッグ情報を含め、ローカルホストワークステーションからアクセスできることが必要です。これにより、これらのイメージファイルと共有オブジェクトファイルからのデバッグ情報のみをロードするよう、ターゲット接続を構成できるようになります。ターゲット環境に必要な場合は、デバッグコンフィギュレーションファイルの[Files]タブにある[Load symbols from file]オプションを使用します。
ターゲットに接続した後は、[デバッグ制御]ビューのメニューエントリ、[Load...]を使用して、必要なときにファイルをロードすることもできます。デバッグ情報をロードするために使用できるオプションは以下のとおりです。
[Add Symbols File]
デバッガに追加のデバッグ情報をロードします。
[Load Debug Info]
デバッガにデバッグ情報をロードします。
[Load Image and Debug Info]
アプリケーションイメージをターゲットにロードし、これと同じイメージからのデバッグ情報をデバッガにロードします。
[Load Offset]
イメージ内のすべてのアドレスに追加する 10 進数または 16 進数のオフセットを指定します。16 進数のオフセットには、接頭辞 0x を付ける必要があります。
PC をエントリポイントに設定します
イメージまたはデバッグ情報をロードするときに PC をエントリポイントに設定して、コードが開始位置から実行されるようにします。

このオプションは、[シンボルファイルの追加]オプションでは使用できません。
図 4-2 [Load additional debug information]ダイアログボックス
[Load additional debug information]ダイアログボックス

イメージまたは共有オブジェクト内のデバッグ情報には、デバッグ情報を構築するために使用されたソースのパスも含まれています。イメージまたは共有オブジェクト内のアドレスで実行が停止すると、デバッガは対応するソースファイルを開こうとします。このパスが存在しないか、必要なソースファイルが見つからない場合は、ソースファイルの場所をデバッガで指定する必要があります。これを行うには、代入規則を設定して、イメージから取得したパスを、ローカルホストワークステーションからアクセスできる、必要なソースファイルのパスと関連付けられるようにします。
関連する概念
4.1 ターゲットへのイメージのロードについて
関連する作業
2.4 Linux アプリケーションのデバッグ用の 固定仮想プラットフォームFVP への接続の設定
2.3 gdbserver を使用した Linux ターゲットへの接続の設定
2.6 Linux カーネルへの接続の設定
2.8 ベアメタルターゲットへの接続の設定
2.9 ベアメタルターゲットへのイベントビューアの接続の設定
関連する参考文書
10.6 [Commands]ビュー
10.7 [Debug Control]ビュー
4.13 デバッガパスの代入規則の設定
関連情報
DS-5 デバッガコマンド
非機密扱いPDF file icon PDF 版ARM DUI0446VJ
Copyright © 2010-2015 ARM.All rights reserved.