arm ds-5 デバッガの使用infocenter.arm.com/help/topic/com.arm.doc.dui0446ij/dui...目次 arm...
TRANSCRIPT
ARM® DS-5™
バージョ ン 5.9
デバッガの使用
Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0446IJ (ID 0 5 1 5 1 2 )
ARM DS-5デバッガの使用
Copyright © 2010-2012 ARM. All rights reserved.
リ リース情報
本書には以下の変更が加えられています。
著作権
® または ™ のマークが付いた言葉およびロゴは、 この著作権情報で別段に規定されている場合を除き、
ARM の EU またはその他の国における登録商標および商標です。 本書に記載されている他の製品名は、 各
社の所有する商標です。
本書に記載されている情報の全部または一部、 ならびに本書で紹介する製品は、 著作権所有者の文書によ
る事前の許可を得ない限り、 転用 ・ 複製るこ とを禁じます。
本書に記載されている製品は、 今後も継続的に開発 ・ 改良の対象とな り ます。 本書に含まれる製品および
その利用方法についての情報は、 ARM が用者の利益のために提供するものです。 したがって当社では、 製
品の市販性または利用の適切性を含め、 暗示的 ・ 明示的に関係なく一切の責任負いません。
本書は、 本製品の利用者をサポートするこ とだけを目的と しています。 本書に記載されている情報の使用、
情報の誤り または省略、 あるいは本製品の誤使用によって発生したいかなる損失・損傷についても、 ARM は一切責任を負いません。
ARM とい う用語が使用されている場合、 "ARM または必要に応じてその子会社 " を指します。
機密保持ステータス
本書は非機密扱いであ り、 本書を使用、 複製、 および開示する権利は、 ARM および ARM が本書を提供し
た当事者との間で締結した契約の条項に基づいたライセンスの制限によ り異なり ます。
製品ステータス
本書の情報は 終版であ り、 開発済み製品に対応しています。
Web アドレス
http://www.arm.com
変更履歴
日付 発行 機密保持ステータス 変更点
2010 年 6 月 A 非機密扱い DS-5 初版
2010 年 9 月 B 非機密扱い DS-5 バージ ョ ン 5.2 改訂版
2010 年 11 月 C 非機密扱い DS-5 バージ ョ ン 5.3 改訂版
2011 年 1 月 D 非機密扱い DS-5 バージ ョ ン 5.4 改訂版
2011 年 5 月 E 非機密扱い DS-5 バージ ョ ン 5.5 改訂版
2011 年 7 月 F 非機密扱い DS-5 バージ ョ ン 5.6 改訂版
2011 年 9 月 G 非機密扱い DS-5 バージ ョ ン 5.7 改訂版
2011 年 11 月 H 非機密扱い DS-5 バージ ョ ン 5.8 改訂版
2012 年 2 月 I 非機密扱い DS-5 バージ ョ ン 5.9 改訂版
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. iiID 0 5 1 5 1 2 Non-Confidential
目次ARM DS-5 デバッガの使用
第 1 章 表記規則とフ ィードバック
第 2 章 デバッガの使い方2.1 デバッガについて .................................................................................................... 2-22.2 デバッガの概念 ....................................................................................................... 2-42.3 Eclipse からのデバッガの起動 ................................................................................ 2-62.4 コマンド ラインコンソールからのデバッガの起動 ................................................. 2-72.5 DS-5 デバッグパースペクティブのキーボードシ ョート カッ ト ........................... 2-112.6 DS-5 デバッガコマンド ラインコンソールのキーボードシ ョート カッ ト ............. 2-13
第 3 章 ターゲッ トの設定と接続3.1 ターゲッ ト接続の種類 ............................................................................................. 3-33.2 RTSM モデルへの接続の設定 ................................................................................. 3-43.3 gdbserver を使用した Linux ターゲッ トへの接続の設定 ........................................ 3-63.4 Linux カーネルへの接続の設定 ............................................................................... 3-93.5 ベアメ タルターゲッ トへの接続の設定 ................................................................. 3-123.6 ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 ................................. 3-143.7 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リテ ィについて ........ 3-173.8 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リテ ィの起動 ........... 3-203.9 モデルからの DS-5 の新しいプラッ ト フォームコンフ ィギュレーシ ョ ンの作成 . 3-213.10 RVC ファイルからの DS-5 の新しいプラッ ト フォームコンフ ィギュレーシ ョ ンの作成
3-223.11 既存の起動コンフ ィギュレーシ ョ ンのエクスポート ............................................ 3-243.12 既存の起動コンフ ィギュレーシ ョ ンのインポート ............................................... 3-263.13 ターゲッ トからの切断 ........................................................................................... 3-28
第 4 章 実行制御4.1 ターゲッ トへのイメージのロードについて ............................................................ 4-2
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. iiiID 0 5 1 5 1 2 Non-Confidential
目次
4.2 デバッガへのデバッグ情報のロードについて ......................................................... 4-44.3 イメージの実行 ....................................................................................................... 4-64.4 ブレークポイン ト とウォッチポイン トについて ..................................................... 4-74.5 実行ブレークポイン トの設定 ................................................................................ 4-104.6 データウォッチポイン トの設定 ............................................................................ 4-134.7 ト レースポイン トの設定 ....................................................................................... 4-154.8 条件ブレークポイン トの設定 ................................................................................ 4-164.9 特定のスレッ ドへのブレークポイン トの設定 ....................................................... 4-204.10 ブレークポイン ト とウォッチポイン トの保留 ....................................................... 4-224.11 ファイルへの DS-5 ブレークポイン ト設定のエクスポート .................................. 4-244.12 ファイルからの DS-5 ブレークポイン ト設定のインポート .................................. 4-264.13 アプリケーシ ョ ンのステップ実行 ......................................................................... 4-284.14 Unix シグナルの処理 ............................................................................................. 4-304.15 プロセッサ例外処理 .............................................................................................. 4-324.16 デバッガパスの代入規則の設定 ............................................................................ 4-34
第 5 章 ターゲッ トの検査5.1 ターゲッ ト実行環境の検査 ..................................................................................... 5-25.2 コールスタ ックの検査 ............................................................................................. 5-55.3 ト レースサポートについて ..................................................................................... 5-7
第 6 章 組み込みシステムのデバッグ6.1 エンディアンについて ............................................................................................. 6-26.2 AHB バスと APB バスへのアクセスについて ......................................................... 6-36.3 仮想メモリ と物理メモリについて ........................................................................... 6-46.4 ハイパーバイザのデバッグについて ....................................................................... 6-56.5 ベアメ タル対称型マルチプロセスシステムのデバッグについて ............................ 6-76.6 マルチスレッ ドアプリケーシ ョ ンのデバッグについて ........................................ 6-106.7 共有ライブラリのデバッグについて ..................................................................... 6-126.8 Linux カーネルのデバッグについて ...................................................................... 6-156.9 Linux カーネルモジュールのデバッグについて .................................................... 6-176.10 TrustZone 対応ターゲッ トのデバッグについて .................................................... 6-19
第 7 章 スクリプ ト を使用したデバッグ7.1 デバッグセッシ ョ ンで生成された DS-5 デバッガコマンドのエクスポート .......... 7-27.2 DS-5 デバッガスクリプ トの作成 ............................................................................ 7-37.3 Jython スクリプ トの作成 ........................................................................................ 7-47.4 CMM スタイルのスクリプ トの作成 ........................................................................ 7-77.5 スクリプ トの実行 .................................................................................................... 7-97.6 Eclipse での Jython プロジェク トの設定 .............................................................. 7-11
第 8 章 実行時メ ッセージの制御8.1 セミホスティングと top of memory について ......................................................... 8-28.2 セミホスティングの使用 ......................................................................................... 8-48.3 デバッガでの自動セミホスティ ングサポートの有効化 .......................................... 8-58.4 コマンド ラインコンソールを使用したセミホスティ ングメ ッセージの制御 .......... 8-68.5 ログメ ッセージの出力の制御 .................................................................................. 8-78.6 log4j コンフ ィギュレーシ ョ ンファイルについて .................................................... 8-88.7 デバッガからのログメ ッセージの出力のカスタマイズ .......................................... 8-9
第 9 章 スナップシ ョ ッ ト ビューアの使用9.1 スナップシ ョ ッ ト ビューアの初期化ファイルの作成 .............................................. 9-29.2 スナップシ ョ ッ ト ビューアについて ....................................................................... 9-59.3 スナップシ ョ ッ ト ビューアへの接続 ....................................................................... 9-89.4 スナップシ ョ ッ ト ビューアのデバッガスクリプ ト作成時の注意事項 ..................... 9-9
第 10 章 DS-5 デバッグパースペクテ ィブおよびビュー10.1 [App Console] ビュー .......................................................................................... 10-310.2 [ARM Asm Info] ビュー ....................................................................................... 10-5
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. ivID 0 5 1 5 1 2 Non-Confidential
目次
10.3 ARM アセンブラエディ タ ..................................................................................... 10-610.4 [Breakpoints] ビュー ............................................................................................ 10-910.5 C/C++ エディ タ ................................................................................................... 10-1410.6 イベン トビューアのチャネルエディ タ ............................................................... 10-1810.7 [Commands] ビュー .......................................................................................... 10-2010.8 [Debug Control] ビュー ..................................................................................... 10-2310.9 [Disassembly] ビュー ........................................................................................ 10-2810.10 [Expressions] ビュー ......................................................................................... 10-3210.11 関数ビュー ........................................................................................................... 10-3510.12 [History] ビュー ................................................................................................. 10-3810.13 [Memory] ビュー ................................................................................................ 10-4010.14 [Modules] ビュー ............................................................................................... 10-4410.15 [Registers] ビュー ............................................................................................. 10-4710.16 [Screen] ビュー ................................................................................................. 10-5010.17 [Scripts] ビュー .................................................................................................. 10-5310.18 [Target] ビュー .................................................................................................. 10-5510.19 [Trace] ビュー ................................................................................................... 10-5710.20 [Variables] ビュー .............................................................................................. 10-6110.21 [Export memory] ダイアログボックス ............................................................... 10-6410.22 [Import memory] ダイアログボックス ............................................................... 10-6610.23 [Export trace report] ダイアログボックス ......................................................... 10-6810.24 [Breakpoint properties] ダイアログボックス ..................................................... 10-7010.25 [Watchpoint properties] ダイアログボックス .................................................... 10-7510.26 [ ト レースポイン トのプロパティ] ダイアログボックス .................................... 10-7610.27 [Manage Signals] ダイアログボックス ............................................................. 10-7710.28 [Functions Filter] ダイアログボックス .............................................................. 10-7910.29 [Debug Configurations] - [Connection] タブ ................................................... 10-8010.30 [Debug Configurations] - [Files] タブ ............................................................. 10-8510.31 [Debug Configurations] - [Debugger] タブ ..................................................... 10-9010.32 [Debug Configurations] - [Arguments] タブ ................................................... 10-9510.33 [Debug Configurations] - [Environment] タブ ................................................. 10-9810.34 [Debug Configurations] - [Event Viewer] タブ .............................................. 10-10110.35 DS-5 デバッガメニューとツールバーアイコン ................................................. 10-104
第 11 章 ト ラブルシューテ ィング11.1 ARM Linux の問題と解決法 ................................................................................... 11-211.2 デバッガからの内部ログの有効化 ......................................................................... 11-311.3 ターゲッ ト接続の問題と解決法 ............................................................................ 11-4
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. vID 0 5 1 5 1 2 Non-Confidential
第 1 章 表記規則とフ ィードバック
以下では、 表記規則とフ ィードバッ クの方法について説明します。
表記規則
以下の表記規則を使用しています。
monospace コマンド、 ファ イル名、 プログラム名、 ソースコードなど、 キー
ボードから入力可能なテキス ト を示しています。
monospace コマンドまたはオプシ ョ ンに使用可能な略語を示します。 コマン
ド名またはオプシ ョ ン名をすべて入力する代わりに、 下線部分の文字だけを入力するこ とができます。
monospace italic コマンドまたは関数の引数で、 特定の値に置き換えるこ とが可能なものを示しています。
monospace bold サンプルコード以外に使用される言語キーワードを示しています。
italic 重要事項、 重要用語、 相互参照、 引用箇所を斜体で記載していま
す。
bold メニュー名などのユーザインタフェース要素を太字で記載してい
ます。 また、 適宜記述リ ス ト内の重要箇所と ARM® プロセッサの
信号名にも太字を用いています。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 1-1ID 0 5 1 5 1 2 Non-Confidential
表記規則とフ ィードバック
本製品に関するフ ィードバッ ク
本製品についてのご意見やご提案がございましたら、 以下の情報を添えて購入元までお寄せ下さい。
• お名前と会社名
• 製品のシ リ アル番号
• 製品のリ リース情報
• ご使用のプラ ッ ト フォームの詳細 (ハード ウェアプラ ッ ト フォーム、 オペレーティングシステムの種類とバージ ョ ンなど)
• 問題を再現するサイズの小さな独立したサンプルコード
• 操作の目的と実際の動作に関する詳しい説明
• 使用したコマンド (コマンド ラインオプシ ョ ンを含む)
• 問題を例示するサンプル出力
• ツールのバージ ョ ン情報 (バージ ョ ン番号、 ビルド番号を含む)
内容に関するフ ィードバッ ク
内容に関するご意見につきましては、 電子メールを [email protected] まで
送信して下さい。 その際には、 以下の内容を記載して下さい。
• タイ トル
• 文書番号 (ARM DUI 0446IJ)
• オンラインでご覧の場合は、 該当する ト ピッ ク名
• PDF 版の文書をご覧の場合は、 問題のあるページ番号
• 問題点の簡潔な説明
また、 補足すべき点や改善すべき点についての全般的なご提案もお待ちしており ます。
ARM では、技術情報記事や FAQ の拡充と共に、 ドキュ メン トに対する更新と訂正を ARM Information Center にて定期的に行っており ます。
その他の情報
• ARM Infocenter, http://infocenter.arm.com/help/index.jsp
• ARM Technical Support Knowledge Articles, http://infocenter.arm.com/help/topic/com.arm.doc.faqs
• サポートおよびメンテナンス , http://www.arm.com/support/services/support-maintenance.php
• ARM 用語集 , http://infocenter.arm.com/help/topic/com.arm.doc.aeg0014-/index.html
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 1-2ID 0 5 1 5 1 2 Non-Confidential
第 2 章 デバッガの使い方
以下の各ト ピッ クでは、 デバッガの概要を紹介し、 デバッガの起動方法について説明します。
タスク • Eclipse からのデバッガの起動 (2-6 ページ)
• コマンド ラ インコンソールからのデバッガの起動 (2-7 ページ) .
概念
• デバッガについて (2-2 ページ)
• デバッガの概念 (2-4 ページ) .
参照 • DS-5 デバッグパースペクティブのキーボードシ ョート カッ ト (2-11 ページ)
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト (2-13 ペー
ジ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-1ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.1 デバッガについて
ARM® DS-5™ デバッガには、 ARM アーキテクチャベースのプロセッサを使用した
ハード ウェアターゲッ ト とモデルの両方でアプリ ケーシ ョ ンをデバッグするたの強力なツールが用意されています。 実行フローを完全に制御するこ とによって、 エラー
をすばやく検出して修正できます。
以下の機能が用意されています。
• イ メージとシンボルのロード
• イ メージの実行
• ブレークポイン ト と ウォ ッチポイン ト
• ソースおよび命令レベルのステップ実行
• 変数およびレジスタ値へのアクセス
• コールスタ ッ クのナビゲーシ ョ ン
• 例外および Linux signal 処理のサポート
• マルチスレッ ド Linux アプリ ケーシ ョ ンのデバッグ
• Linux カーネルモジュール、 ブート コード、 およびカーネル移植のデバッグ
• ベアメ タル対称型マルチプロセス (SMP) システムのデバッグ
デバッガは、 Eclipse 統合開発環境 (IDE) で実行できる包括的な DS-5 デバッガコマ
ンドのセッ ト 、 スク リプ ト ファ イル、 またはコマンド ラ インコンソールをサポートしています。 さ らに、 ターゲッ トの初期化スク リプ ト を実行するのに十分な CMM 形式のコマンドが多少用意されています。 CMM は一部のサードパーティ製デバッガに
よってサポート されているスク リプ ト言語です。 CMM 形式のコマンドを実行するに
は、 CMM 形式のコマンドを含むデバッガスク リプ ト ファ イルを成して、 DS-5 デバッガの source コマンドを使用してスク リプ ト を実行する必要があ り ます。
使用を開始する上で役立つチュート リ アルがいくつかあ り、 DS-5 ツールを使用して
アプリ ケーシ ョ ンを実行およびデバッグする方法について説明しています。
2.1.1 関連項目
タスク • ARM® DS-5™ 『DS-5 スタートガイ ド』 の DS-5 チュート リ アル :
— Eclipse へのサンプルプロジェク トのインポート (3-5 ページ)
— Eclipse からの Gnometris プロジェク トの作成 (3-7 ページ)
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ)
— RSE 接続を使用した ARM Linux ターゲッ トの操作 (3-11 ページ)
— ARM Linux ターゲッ ト上で既に実行されている Gnometris アプ リ ケーシ ョ
ンへの接続 (3-17 ページ)
— Gnometris のデバッグ (3-21 ページ)
— ロード可能なカーネルモジュールのデバッグ (3-23 ページ)
— ARM Linux 上で動作するスレッ ドアプリ ケーシ ョ ンのパフォーマンス解析
(3-28 ページ)
— Android ターゲッ トへの hello-neon アプリ ケーシ ョ ンのロード (3-32 ペー
ジ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-2ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
• Eclipse からのデバッガの起動 (2-6 ページ)
• コマンド ラインコンソールからのデバッガの起動 (2-7 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— カスタム Eclipse 環境への DS-5 のインス トール (3-3 ページ) .
概念 • デバッガの概念 (2-4 ページ)
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .• 『ARM® DS-5™ : Eclipse の使用』 :
— 第 2 章 Eclipse スタートガイ ド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-3ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.2 デバッガの概念
以下の概念がアプリ ケーシ ョ ンのデバッグ時に関係します。
デバッガ デバッガはホス ト コンピュータで実行されるソフ ト ウェアであ り、 これ
によってデバッグエージェン ト を使用してデバッグターゲッ ト上で実行されるソフ ト ウェアの検証および制御ができます。
デバッグセッシ ョ ン
デバッグセッシ ョ ンは、 ターゲッ ト上で実行されているソフ ト ウェアをデバッグするために、 デバッガをターゲッ ト またはモデルに接続したとき開始し、 ターゲッ トからホス ト ソフ ト ウェアを切断したと きに終了します。
デバッグターゲッ ト
製品開発の初期段階は、 ハード ウェアがない場合があるので、 ハードウェアの予想される動作をソフ ト ウェアでシ ミ ュレート します。 デバッ
ガのマニュアルでは、 これをモデルと呼びます。 モデルをデバッガと同
じコンピュータで実行する可能性があっても、 ターゲッ ト を別個のハード ウェアと して考えるこ とが重要です。
あるいは、 アプ リ ケーシ ョ ンを実行またはデバッグする 1 つ以上のプロ
セッサを含むプリ ン ト基板にプロ ト タイプ製品を構築できます。 デバッ
ガマニュアルでは、 これをハード ウェアターゲッ ト と呼びます。
デバッグエージェン ト デバッグエージェン トは、 ターゲッ ト上のデバッガによって
要求されるアクシ ョ ンを実行します。 以下に例を示します。
• ブレークポイン トの設定
• メモ リからの読み出し
• メモ リへの書き込み
デバッグエージェン トはデバッグされるアプリ ケーシ ョ ンではな く、 デバッガ自体でもあ り ません。
以下はその例です。
• デバッグハード ウェアエージェン ト :
— ARM DSTREAM™ ユニッ ト
— ARM RVI™ ユニッ ト
• デバッグソフ ト ウェアエージェン ト :
— リ アルタイムシステムモデル (RTSM)
— gdbserver
コンテキス ト ターゲッ トの各プロセッサは現在実行中のプロセスを持つこ とができ
ます。 各プロセスは、 変数、 レジスタ、 および他のメモ リ位置に格納さ
れる値を使用します。 プロセスの実行中にこれらの値を変更できます。
プロセスのコンテキス トでは、 現在のすべてのアクティブコールを列挙するコールスタ ッ クで主に定義されているよ うに、 現在の状態を記述します。 コンテキス トは以下の場合に変更されます。
• 関数が呼び出された。
• 関数から戻った。
• 割り込みまたは例外が発生した。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-4ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
変数はク ラス、 ローカル、 またはグローバル有効範囲を持つこ とができるので、 現在アクセス可能な変数はコンテキス トによって決定されます。 すべてのプロセスは独自のコンテキス ト を持っています。 プロセス
の実行を停止する と、 現在のコンテキス ト内の値の検証と変更を行う ことができます。
有効範囲 変数の有効範囲は、 定義されているアプ リ ケーシ ョ ン内のポイン トに
よって決定されます。 変数は、 以下の範囲内の関連する値を持つこ とが
できます。
• 特定のク ラスのみ (ク ラス)
• 特定の関数のみ (ローカル)
• 特定のファイルのみ (スタティ ッ クグローバル)
• アプリ ケーシ ョ ン全体 (グローバル)
2.2.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ) .
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ) .
概念
• デバッガの概念 (2-4 ページ) .
参照
• ARM® DS-5™ ARM® DSTREAM™ ハードウェアの設定 , http://infocenter.arm.com/help/topic/com.arm.doc.dui0481-/index.html
• ARM® DS-5™ ARM® の RVI™ と RVT™ ハードウェアの設定 , http://infocenter.arm.com/help/topic/dui0515-/index.html.
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-5ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.3 Eclipse からのデバッガの起動
デバッガを起動するには
1. Eclipse を起動します。
• Windows 環境では、 [スタート ] → [すべてのプログラム] → [ARM DS-5] → [Eclipse for DS-5] を選択します。
• Linux の場合 :
— インス トール時にシ ョート カッ ト をインス トールした場合は、 [アプリ ケーシ ョ ン] メニューで [Eclipse for DS-5] を選択します。
— インス トール時にシ ョート カッ ト をインス トールしていない場合 :
1. install_directory/bin ディ レク ト リ を PATH 環境変数に追加しま
す。 既に設定されている場合は、 この手順を省略します。
2. Unix bash シェルを開きます。
3. プロンプ トで 「eclipse」 と入力します。
2. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
3. 前にデバッグセッシ ョ ンを実行していなかった場合は、 タスクのデバッグを開始する前に、 デバッガと ターゲッ トの間の接続を設定する必要があ り ます。
4. 前にデバッグセッシ ョ ンを実行していた場合は、 [Debug Control] ビューでター
ゲッ ト接続を選択し、 [Connect to Target] ツールバーアイコンをク リ ッ ク しま
す。
2.3.1 関連項目
タスク • RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ) .
概念 • ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Control] ビュー (10-23 ページ)
• [Commands] ビュー (10-20 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Variables] ビュー (10-61 ページ)
• [Registers] ビュー (10-47 ページ)
• [Memory] ビュー (10-40 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-6ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.4 コマンド ラインコンソールからのデバッガの起動
デバッガを起動するには
1. コマンド ラインコンソールを起動します。
Windows の場合、 [スタート ] → [プログラム] → [ARM DS-5] → [DS-5 Command Prompt] を選択します。
Linux の場合 :
a. install_directory/bin ディ レク ト リ を PATH 環境変数に追加します。 既に設
定されている場合は、 この手順を省略します。
b. Unix bash シェルを開きます。
2. 以下のコマンド ラ イン構文を使用してデバッガを起動します。
debugger --target [--target_device] [option]…
各パラ メータには以下の意味があ り ます。
--target=host:port|filename
デバッガと gdbserver 間の接続用の host:port、 またはターゲッ ト コン
フ ィギュレーシ ョ ンファ イル (XML ファ イルや RVC ファ イルなど)
のいずれかを指定します。
シ リ アル接続には以下の例のよ うな XML ファ イルが必要です。
例 2-1 mySerialConfig.xml
<?xml version="1.0"?><RVConfigUtility>
<rddi type="rddi-debug-gdb"/><rddigdb>
<connection><serial>
<port>COM1</port><speed>115200</speed>
</serial></connection>
</rddigdb></RVConfigUtility>
--target_device=number|name
デバイスの番号または名前を指定します。 複数のデバイスがあるター
ゲッ トへの接続を設定する と きは、 --target_device コマンド ラ インオ
プシ ョ ンを使用してデバッガを起動する必要があ り ます。 --target_device を指定しないと、 デバッガは使用可能なすべてのデバ
イスを列挙して終了します。
さ らに、 option は以下のいずれかにな り ます。
--continue_on_error=true|false
エラーが発生したと きにデバッガでターゲッ ト を停止して現在のスクリプ ト を終了するかど うかを指定します。 デフォルトは --continue_on_error=false です。
--disable_semihosting
セ ミ ホスティング操作を無効にします。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-7ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
--disable_semihosting_console
デバッガコンソールに対するすべてのセ ミ ホスティング操作を無効にします。
--enable_semihosting
セ ミ ホスティング操作を有効にします。
--help 主なコマンド ラ インオプシ ョ ンの一覧を表示します。
- - image=filenameデバッガがターゲッ トに接続したと きにロードするイ メージファ イルを指定します。
- - interactiveWindows コマンドプロンプ トや Unix bash シェルなどの現在のコマン
ド ラ インコンソールからデバッガに標準入出力を転送するインタラ クティブモードを指定します。 スク リプ ト ファ イルが指定されていない
場合は、 これがデフォルトにな り ます。
--log_config=option
デバッガから実行時メ ッセージを出力するログコンフ ィギュレーシ ョンのタイプを指定します。
各パラ メータには以下の意味があ り ます。
option 定義済みのログコンフ ィギュレーシ ョ ンまたはユーザ定義
のログコンフ ィギュレーシ ョ ンファ イルを指定します。
info 定義済みの INFO レベル設定を使用する出力メ ッ
セージ。 このレベルではデバッグメ ッセージを出
力しません。 これがデフォルトです。
debug 定義済みの DEBUG レベル設定を使用する出力
メ ッセージ。 このオプシ ョ ンは INFO レベルと DEBUG レベルの両方のメ ッセージを出力します。
filename メ ッセージの出力をカスタマイズするユーザ定義
のログコンフ ィギュレーシ ョ ンファ イルを指定します。 デバッガは log4j コンフ ィギュレーシ ョ ファ
イルをサポート します。
--log_file=filename
デバッガから実行時メ ッセージを受け取る出力ファイルを指定します。 このオプシ ョ ンを使用しないと、 出力メ ッセージはコンソールに
転送されます。
--script=filename
ターゲッ トの制御とデバッグを行うデバッガコマンドを含むスク リプト ファ イルを指定します。 複数のスク リプ ト ファ イルがある場合は、
このオプシ ョ ンを繰り返し指定できます。 スク リプ トは指定した順序
で実行されます。
--semihosting_error=filename
セ ミ ホスティング操作で stderr を書き込むファイルを指定します。
--semihosting_input=filename
セ ミ ホスティング操作で stdin を読み出すファイルを指定します。
--semihosting_output=filename
セ ミ ホスティング操作で stdout を書き込むファイルを指定します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-8ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
--stop_on_connect=true|false
ターゲッ トデバイスに接続したと きにデバッガでターゲッ ト を停止するかど うかを指定します。 接続時にターゲッ ト を変更しない場合は、
false を指定する必要があ り ます。 デフォルトは --stop_on_connect=true です。
--target_os
ターゲッ トのオペレーティングシステム (OS) の名前
(--target_os=linux など) を指定します。 これによ り、 共有ライブラ リ
サポート など、 デバッガ内での OS サポートが有効にな り ます。 使用
できるオプシ ョ ンは以下のとおりです。
linux Linux アプリ ケーシ ョ ンのデバッグを OS がサポート
linux-kernel
Linux カーネルのデバッグを OS がサポート
--top_mem=address
top of memory と も呼ばれるスタ ッ クベースを指定します。 top of memory はセミ ホスティング操作にのみ使用されます。
注 セ ミ ホスティングは、 アプリ ケーシ ョ ンコードからデバッガを実行するホス ト
ワークステーシ ョ ンへの入出力要求の通信に使用します。
例 2-2 ベアメ タルコマンド ライン接続の例
debugger --target=beagleboard.rvc --target_device=Cortex-A8
接続したら、 DS-5 デバッガコマンドを使用してターゲッ トにアクセスし、 デ
バッグを開始します。 たとえば info registers は、 すべてのアプリ ケーシ ョ ンレ
ベルのレジスタを表示します。
2.4.1 関連項目
タスク • デバッグセッシ ョ ンで生成された DS-5 デバッガコマンドのエクスポート
(7-2 ページ)
• ログメ ッセージの出力の制御 (8-7 ページ) .
概念 • ターゲッ ト接続の種類 (3-3 ページ)
• セ ミ ホスティングと top of memory について (8-2 ページ) .
参照
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト
(2-13 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-9ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
その他の情報
• Apache ログサービスの Log4j, http://logging.apache.org.
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-10ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.5 DS-5 デバッグパースペクテ ィブのキーボードシ ョート カッ ト
DS-5 デバッグパースペクティブを使用する場合は、 キーボードシ ョート カッ ト を使
用できます。
どのビューまたはどのダイアログボッ クスでも、 以下のキーを使用してダイナミ ックヘルプにアクセスできます。
• Windows の場合、 F1 キー
• 例えば Linux の場合、 Shift+F1 キー
ターゲッ トに接続している場合のみ、 以下のキーボードシ ョート カッ ト を使用できます。
[Commands] ビュー
以下のキーボードシ ョート カッ ト を使用できます。
Ctrl+Space コマンドの自動補完コンテンツアシス トにアクセス
します。
Enter 隣接するフ ィールドに入力されるコマンドを実行し
ます。
下矢印キー コマンド履歴を下方向に移動します。
上矢印キー コマンド履歴を上方向に移動します。
[Debug Control] ビュー
以下のキーボードシ ョート カッ ト を使用できます。
F5 デバッグ情報があるすべての関数呼び出しへのス
テップ実行など、 ソースレベルまたは命令レベルでステップ実行します。 また、 ALT+F5 を使用して逆の
モードでステップ実行するこ と もできます。 例えば、
ソースレベルのステップ実行モードの場合は、ALT+F5 を使用する と、 命令レベルのステップが実
行されます。
F6 ソースレベルまたは命令レベルでステップ実行しま
すが、 すべての関数呼び出しをステップオーバーします。
F7 選択したスタ ッ クフレームが終了した後、 以下の命
令の実行を継続します。
F8 現在の位置からアプリ ケーシ ョ ンイ メージの実行を
開始します。
ブレークポイン トに達したか、 またはターゲッ トが中断された後に、 アプ リ ケーシ ョ ンの実行を継続します。
注 [Connect only] 接続は、 実行する前に、 PC レジスタ
をイ メージの開始位置に設定する必要があ り ます。
F9 ターゲッ ト を中断し、 実行中であれば現在のアプリ
ケーシ ョ ンを停止します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-11ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.5.1 関連項目
参照
• Eclipse からのデバッガの起動 (2-6 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-12ID 0 5 1 5 1 2 Non-Confidential
デバッガの使い方
2.6 DS-5 デバッガコマンド ラインコンソールのキーボードシ ョート カッ ト
DS-5 デバッガコマンド ラインコンソールを使用している場合、 コマンド履歴やいく
つかの一般的なキーボードシ ョート カッ ト など、 多数の便利なイン編集機能が用意されています。
入力する各コマンドは、 コマンド履歴に格納されます。 上および下矢印キーを使用し
てコマンド履歴内を移動して、 前のコマンドを検索したり再発行したりするこ とができます。
コマンドの編集やコマンド履歴の移動を簡単にするために、 多数の特殊なキーボードシ ョート カッ ト を使用できます。
以下に も一般的なキーボードシ ョート カッ ト を示します。
Ctrl+A カーソルを行の先頭に移動します。
Ctrl+D デバッガコンソールを終了します。
Ctrl+E カーソルを行末に移動します。
Ctrl+N 入力したテキス トについてコマンド履歴を順方向に検索します。
Ctrl+P 入力したテキス トについてコマンド履歴を逆方向に検索します。
Ctrl+W 後の語を削除します。
下矢印キー コマンド履歴を下方向に移動します。
上矢印キー コマンド履歴を上方向に移動します。
2.6.1 関連項目
参照
• コマンド ラインコンソールからのデバッガの起動 (2-7 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 2-13ID 0 5 1 5 1 2 Non-Confidential
第 3 章 ターゲッ トの設定と接続
以下の各ト ピッ クでは、 Eclipse 統合開発環境 (IDE) の ARM® DS-5™ デバッガを使用し
て、 デバッグターゲッ ト を設定し、 デバッグターゲッ トに接続する方法について説明します。
タスク • RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティについて(3-17 ページ)
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティの起動(3-20 ページ)
• モデルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ンの作成
(3-21 ページ)
• RVC ファ イルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ンの作
成 (3-22 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• ターゲッ トからの切断 (3-28 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-1ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
概念
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティについて(3-17 ページ)
• ターゲッ ト接続の種類 (3-3 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-2ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.1 ターゲッ ト接続の種類
アプリ ケーシ ョ ンをデバッグする前に、 デバッガを実行するホス ト ワークステーシ ョ ンと ターゲッ ト間の接続を設定する必要があ り ます。
デバッガによってサポート される接続には以下の種類があ り ます。
Linux アプ リ ケーシ ョ ン
Linux アプ リ ケーシ ョ ンをデバッグするには、 以下への TCP 接続または
シ リ アル接続を使用できます。
• ARM 組み込み Linux をブートするよ う事前設定されているモデル
で実行されている gdbserver
• ハード ウェアターゲッ トで実行されている gdbserver
このタイプの開発には gdbserver をインス トールしてターゲッ ト上で実
行する必要があ り ます。 gdbserver がターゲッ トにインス トールされてい
ない場合は、 Linux ディ ス ト リ ビューシ ョ ンのマニュアルを参照するか、
またはプロバイダにお問い合わせ下さい。 あるいは、
install_directory/arm にある DS-5 インス トールから gdbserver を使用する
こ と もできます。
ベアメ タルと Linux カーネル
ベアメ タルターゲッ ト、 Linux カーネル、 またはカーネルデバイス ド ラ
イバ上で実行されているアプ リ ケーシ ョ ンをデバッグするには、 ホス トワーステーシ ョ ンおよびターゲッ トに接続されているデバッグハードウェアエージェン ト を使用できます。
スナップシ ョ ッ ト ビューア
スナップシ ョ ッ ト ビューアを使用する と、 前にキャプチャした状態を使用して、 アプ リ ケーシ ョ ンの読み出し専用表示でデバッグできるよ うになます。
注 現在、 DS-5 では、 コマンド ラ インコンソールを使用した DS-5 デバッガ
のスナップシ ョ ッ ト ビューアへの接続のみサポート しています。
3.1.1 関連項目
タスク • RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ) .
概念 • デバッガの概念 (2-4 ページ)
• スナップシ ョ ッ ト ビューアについて (9-5 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-3ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.2 RTSM モデルへの接続の設定
DS-5 は、 Windows と Linux プラ ッ ト フォームの両方で、 リ アルタイムシステムモデ
ル (RTSM) とホス ト マシンの間のシ リ アル接続をサポート しています。
RTSM に接続するには
1. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
2. [Run] メニューから [Debug Configurations...] を選択します。
3. コンフ ィギュレーシ ョ ンツ リーから [DS-5 Debugger] を選択し、 [New] をク
リ ッ ク して新しいコンフ ィギュレーシ ョ ンを作成します。
4. [Name] フ ィールドに、 新しいコンフ ィギュレーシ ョ ンの適切な名前を入力し
ます。
5. [Connection] タブをク リ ッ ク して、 DS-5 デバッガターゲッ ト接続を設定しま
す。
a. 必要な RTSM プラ ッ ト フォームを選択します。
b. [Linux Application Debug] プロジェク ト タイプを選択します。
c. 必要なデバッグ操作を選択します。 例えば、 仮想ファイルシステム (VFS)を使用する場合は、 [Debug target resident application] を選択します。
d. [Connections] パネルで、 シ リ アル接続が自動的に設定されます。
e. VFS を使用する場合は、 [Enable virtual file system support] を選択しま
す。 デフォルトの VFS マウン ト ポイン トは、Eclipse ワークスペースルート
ディ レク ト リ を、 モデルの /writeable ディ レク ト リにマップします。 デフォルトのままにするか、 必要に応じて変更して下さい。
注 VFS はモデルの初期化時にのみ設定されます。 VFS ディ レク ト リ構造を変
更する と、 モデルを再起動しなければならない場合があ り ます。
6. [Files] タブをク リ ッ ク してターゲッ ト環境を定義し、 デバッガを使用するホ
ス ト上のアプリ ケーシ ョ ンファ イルおよびライブラ リのデバッグバージ ョ ン選択します。
a. [Target Configuration] パネルで、 ターゲッ ト上のアプリ ケーシ ョ ンの場所
を指定します。 また、 必要に応じて、 ターゲッ ト作業ディ レク ト リ を指定
るこ と もできます。
b. [Files] パネルで、 デバッガを使用してデバッグ情報をロードするホス ト
上のファ イルを選択します。
注 [Files] タブのオプシ ョ ンは、 選択するデバッグ操作のタイプに依存します。
7. [Debugger] タブをク リ ッ ク して、 デバッガ設定を構成します。
a. ターゲッ トに接続した後にデバッガで行うアクシ ョ ンを指定します。
b. ホス ト作業ディ レク ト リ を設定するか、 またはデフォルト を使用します。
c. デバッガがソースコードを表示する と きに使用するホス ト上の検索パスを設定します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-4ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
8. 必要に応じて、 [Arguments] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開始
時にアプリ ケーシ ョ ンに渡される引数を入力します。
9. 必要に応じて、 [Environment] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開
始時にアプリ ケーシ ョ ンに渡されるターゲッ ト環境変数を作成して設定します。
10. [Apply] をク リ ッ ク してコンフ ィギュレーシ ョ ン設定を保存します。
11. ターゲッ トに接続し、 すぐにデバッグを開始する場合は、 [Debug] をク リ ッ ク
します。
または、 [Close] をク リ ッ ク して、 [Debug Configurations] ダイアログボッ クス
を閉じます。 デバッグ制御ビューを使用して、 このデバッグコンフ ィギュレー
シ ョ ンに連付けられているデバッグターゲッ トに接続します。
12. デバッグには、 DS-5 デバッグパースペクティブが必要です。 [Confirm Perspective Switch] ダイアログボッ クスが表示された場合は、 [Yes] をク リ ッ
ク してパースペクティブを切り替えます。
接続時に DS-5 デバッグパースペクティブが開いている場合は、 関連するすべての
ビューとエディ タが表示されます。
これらのオプシ ョ ンの詳細については、 ダイナミ ッ クヘルプを使用して下さい。
3.2.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— リ アルタイムシステムモデルについて (2-5 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-5ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.3 gdbserver を使用した Linux ターゲッ トへの接続の設定
gdbserver を使用しているターゲッ ト上で既に実行されているアプリ ケーシ ョ ンに接
続できます。
3.3.1 前提条件
接続前に以下の手順を行う必要があ り ます。
1. インス トールされブート されているオペレーティングシステム (OS) でター
ゲッ ト を設定します。 詳細については、 ターゲッ トに付属のマニュアルを参照
して下さい。
2. ターゲッ ト接続を設定します。
• TCP 接続の場合は、 ターゲッ トの IP アドレスまたは名前を取得します。
• シ リ アル接続の場合は、 ターゲッ トのシ リ アルポートおよびボーレート を設定します。 :stty -F /dev/ttyS2 115200 -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke
3. 必要に応じて、 ターゲッ トへの リモート システムエクスプローラ (RSE) 接続
を設定します。
既に実行されている gdbserver に接続している場合は、 以下のこ とを確認する必要が
あ り ます。
1. gdbserver がインス トールされており、 ターゲッ ト上で実行されているこ と。
ターゲッ ト上で gdbserver およびアプリ ケーシ ョ ンを実行する場合、 以下のコマ
ンドを使用します。
gdbserver port path/myApplication
各パラ メータには以下の意味があ り ます。
• port は gdbserver とアプ リ ケーシ ョ ン間の接続ポートです :5000.
• path/myApplication は、 デバッグするアプ リ ケーシ ョ ンです。
2. アプリ ケーシ ョ ンイ メージがロード されており、 ターゲッ ト上で実行されているこ と。
3.3.2 手順
ターゲッ トに接続するには
1. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
2. [Run] メニューから [Debug Configurations...] を選択します。
3. コンフ ィギュレーシ ョ ンツ リーから [DS-5 Debugger] を選択し、 [New] をク
リ ッ ク して新しいコンフ ィギュレーシ ョ ンを作成します。
4. [Name] フ ィールドに、 新しいコンフ ィギュレーシ ョ ンの適切な名前を入力し
ます。
5. [Connection] タブをク リ ッ ク して、 DS-5 デバッガターゲッ ト接続を設定しま
す。
a. 必要なプラ ッ ト フォームを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-6ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
b. [Linux Application Debug] プロジェク ト タイプを選択します。
c. 必要なデバッグ操作を選択します。
d. デバッガと gdbserver の間の接続を設定します。
6. [Files] タブをク リ ッ ク してターゲッ ト環境を定義し、 デバッガを使用するホ
ス ト上のアプリ ケーシ ョ ンファ イルおよびライブラ リのデバッグバージ ョ ン選択します。
a. [Target Configuration] パネルで、 ターゲッ トにダウンロードするホス ト上
のアプリ ケーシ ョ ンを選択し、 選択したファ イルをダウンロードするターゲッ ト上の場所を指定します。
b. [Files] パネルで、 デバッガを使用してデバッグ情報をロードするホス ト
上のファ イルを選択します。 必要に応じて、 ターゲッ トにダウンロードす
るホス ト上の他のファ イルを指定するこ と もできます。
注 [Files] タブのオプシ ョ ンは、 選択するデバッグ操作のタイプに依存します。
7. [Debugger] タブをク リ ッ ク して、 デバッガ設定を構成します。
a. [Run] コン ト ロールパネルで、 ターゲッ トに接続した後にデバッガで行
う アクシ ョ ンを指定します。
b. ホス ト作業ディ レク ト リ を設定するか、 またはデフォルト を使用します。
c. [Paths] パネルで、 デバッガがソースコードを表示する と きに使用する、
ホス ト上のソースまたはライブラ リの検索ディ レク ト リ を指定します。
8. 必要に応じて、 [Arguments] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開始
時にアプリ ケーシ ョ ンに渡される引数を入力します。
9. 必要に応じて、 [Environment] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開
始時にアプリ ケーシ ョ ンに渡されるターゲッ ト環境変数を作成して設定します。
10. [Apply] をク リ ッ ク してコンフ ィギュレーシ ョ ン設定を保存します。
11. [Debug] をク リ ッ ク してターゲッ トに接続します。
12. デバッグには、 DS-5 デバッグパースペクティブが必要です。 [Confirm Perspective Switch] ダイアログボッ クスが表示された場合は、 [Yes] をク リ ッ
ク してパースペクティブを切り替えます。
接続時に DS-5 デバッグパースペクティブが開いている場合は、 関連するすべての
ビューとエディ タが表示されます。
これらのオプシ ョ ンの詳細については、 ダイナミ ッ クヘルプを使用して下さい。
3.3.3 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-7ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— RSE 接続を使用した ARM Linux ターゲッ トの操作 (3-11 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— 第 5 章 リモート システムエクスプローラの使用 .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-8ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.4 Linux カーネルへの接続の設定
デバッグハード ウェアエージェン ト を使用して実行中のターゲッ トに接続できます。
注 デフォルトでは、 このタイプの接続の場合、 すべてのプロセッサ例外はターゲッ ト
上の Linux によって処理されます。 ブレークポイン ト ビューメニューの [Manage Signals] ダイアログボッ クスを使用して、 デフォルトのハンド ラ設定を変更できま
す。
3.4.1 前提条件
接続する前に、 デバッガとデバッグハード ウェアエージェン トの間の接続のターゲッ ト IP アドレスまたは名前があるこ とを確認します。
3.4.2 手順
ターゲッ トに接続するには
1. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
2. [Run] メニューから [Debug Configurations...] を選択します。
3. コンフ ィギュレーシ ョ ンツ リーから [DS-5 Debugger] を選択し、 [New] をク
リ ッ ク して新しいコンフ ィギュレーシ ョ ンを作成します。
4. [Name] フ ィールドに、 新しいコンフ ィギュレーシ ョ ンの適切な名前を入力し
ます。
5. [Connection] タブをク リ ッ ク して、 DS-5 デバッガターゲッ ト接続を設定しま
す。
a. 必要なプラ ッ ト フォームを選択します。
b. [Linux Kernel and/or Device Driver Debug] プロジェク ト タイプを選択し
ます。
c. 必要なデバッグ操作を選択します。
d. デバッガとデバッグハード ウェアエージェン トの間の接続を設定します。
6. [Files] タブをク リ ッ ク し、 以下のコンパイルされたデバッグバージ ョ ンを選
択します。
a. ターゲッ ト と まった く同じカーネルバージ ョ ンに対してコンパイルされたオペレーティングシステムのカーネルイ メージ (vmlinux)
b. 必要に応じて、 ターゲッ ト と まった く同じカーネルバージ ョ ンに対してコンパイルされたモジュールイ メージ
あるいは、 接続後に、 デバッグ制御ビューから [Load...] メニューオプシ ョ ン
を使用して、 手動でデバッグ情報をデバッガにロードするこ と もできます。
7. [Debugger] タブをク リ ッ ク して、 デバッガ設定を構成します。
a. 必要に応じて、 [Run] コン ト ロールパネルで、 [Connect only] を選択し、
初期化スク リプ ト を設定します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-9ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
注 オペレーティングシステム (OS) サポートは、 Linux カーネルイ メージが
DS-5 デバッガ起動コンフ ィギュレーシ ョ ンからデバッガにロード される
と、 自動的に有効になり ます ただし、 set os コマンドを使用して手動でこ
れを制御するこ と もできます。
例えば、 カーネルがブート され、 Memory Management Unit (MMU) が初
期化されるまで OS サポートのアクティブ化を遅延する場合、 ターゲッ ト
初期化スク リプ ト を使用して OS サポート を無効にする接続を定できま
す。 カーネルをデバッグするには、 OS サポート をデバッガで有効にする
必要があ り ます。
b. ホス ト作業ディ レク ト リ を設定するか、 またはデフォルト を使用します。
c. [Paths] パネルで、 デバッガがソースコードを表示する と きに使用するホ
ス ト上のソースの検索ディ レク ト リ を指定します。
8. [Apply] をク リ ッ ク してコンフ ィギュレーシ ョ ン設定を保存します。
9. [Debug] をク リ ッ ク してターゲッ トに接続します。
10. デバッグには、 DS-5 デバッグパースペクティブが必要です。 [Confirm Perspective Switch] ダイアログボッ クスが表示された場合は、 [Yes] をク リ ッ
ク してパースペクティブを切り替えます。
接続時に DS-5 デバッグパースペクティブが開いている場合は、 関連するすべての
ビューとエディ タが表示されます。
これらのオプシ ョ ンの詳細については、 ダイナミ ッ クヘルプを使用して下さい。
3.4.3 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— ロード可能なカーネルモジュールのデバッグ (3-23 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ)
• Linux カーネルのデバッグについて (6-15 ページ)
• Linux カーネルモジュールのデバッグについて (6-17 ページ)
• ARM Linux の問題と解決法 (11-2 ページ)
• ターゲッ ト接続の問題と解決法 (11-4 ページ) .
参照 • set os (2-162 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-10ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-11ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.5 ベアメ タルターゲッ トへの接続の設定
デバッグハード ウェアエージェン ト を使用してターゲッ ト上にダウンロード し、 実行しているアプ リ ケーシ ョ ンに接続できます。
3.5.1 前提条件
接続する前に、 デバッガとデバッグハード ウェアエージェン トの間の接続のターゲッ ト IP アドレスまたは名前があるこ とを確認します。
3.5.2 手順
ターゲッ トに接続するには
1. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
2. [Run] メニューから [Debug Configurations...] を選択します。
3. コンフ ィギュレーシ ョ ンツ リーから [DS-5 Debugger] を選択し、 [New] をク
リ ッ ク して新しいコンフ ィギュレーシ ョ ンを作成します。
4. [Name] フ ィールドに、 新しいコンフ ィギュレーシ ョ ンの適切な名前を入力し
ます。
5. [Connection] タブをク リ ッ ク して、 DS-5 デバッガターゲッ ト接続を設定しま
す。
a. 必要なプラ ッ ト フォームを選択します。
b. [Bare Metal Debug] プロジェク ト タ イプを選択します。
c. 必要なデバッグ操作を選択します。
d. デバッガとデバッグハード ウェアエージェン トの間の接続を設定します。
6. [Files] タブをク リ ッ ク してターゲッ ト環境を定義し、 デバッガを使用するホ
ス ト上のアプリ ケーシ ョ ンファ イルおよびライブラ リのデバッグバージ ョ ン選択します。
a. [Target Configuration] パネルで、 ターゲッ トにダウンロードするホス ト上
のアプリ ケーシ ョ ンを選択します。
7. [Debugger] タブをク リ ッ ク して、 デバッガ設定を構成します。
a. [Run] コン ト ロールパネルで、 ターゲッ トに接続した後にデバッガで行
う アクシ ョ ンを指定します。
b. ホス ト作業ディ レク ト リ を設定するか、 またはデフォルト を使用します。
c. [Paths] パネルで、 デバッガがソースコードを表示する と きに使用するホ
ス ト上のソースの検索ディ レク ト リ を指定します。
8. 必要に応じて、 [Arguments] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開始
時にセミ ホスティングを使用してアプ リ ケーシ ョ ンに渡される引数を入力します。
9. [Apply] をク リ ッ ク してコンフ ィギュレーシ ョ ン設定を保存します。
10. [Debug] をク リ ッ ク してターゲッ トに接続します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-12ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
11. デバッグには、 DS-5 デバッグパースペクティブが必要です。 [Confirm Perspective Switch] ダイアログボッ クスが表示された場合は、 [Yes] をク リ ッ
ク してパースペクティブを切り替えます。
接続時に DS-5 デバッグパースペクティブが開いている場合は、 関連するすべての
ビューとエディ タが表示されます。
これらのオプシ ョ ンの詳細については、 ダイナミ ッ クヘルプを使用して下さい。
3.5.3 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-13ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.6 ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定
イベン ト ビューアを使用して、 ベアメ タルアプリ ケーシ ョ ンからテキス ト形式のログ情報をキャプチャし、 表示できます。 ログは、 注釈を使用してアプリ ケーシ ョ ンか
らキャプチャされるので、 注釈をソースコードに追加する必要があ り ます。
注 [Debug Configurations] ダイアログボッ クスの [Event Viewer] タブは、 インス トル
メンテーシ ョ ン ト レースマクロセル (ITM) のキャプチャがサポート されているター
ゲッ トのみに対して有効になり ます。
3.6.1 前提条件
接続前に以下のこ とをしておく必要があ り ます。
• デバッガとデバッグハード ウェアエージェン ト間の接続に使用する、 ターゲット IP アドレスまたは名前を確認する
• ログポイン ト を使用して、 アプ リ ケーシ ョ ンソースコードに注釈を付け、 再コンパイルする 詳細については、DS-5 に付属の Versatile Express A9x4 用の ITM とイベン ト ビューアの例を参照して下さい。
3.6.2 手順
ターゲッ トに接続するには
1. メ イン メニューから [ウ ィ ンド ウ] → [パースペクティブを開く] → [DS-5 Debug] を選択します。
2. [Run] メニューから [Debug Configurations...] を選択します。
3. コンフ ィギュレーシ ョ ンツ リーから [DS-5 Debugger] を選択し、 [New] をク
リ ッ ク して新しいコンフ ィギュレーシ ョ ンを作成します。
4. [Name] フ ィールドに、 新しいコンフ ィギュレーシ ョ ンの適切な名前を入力し
ます。
5. [Connection] タブをク リ ッ ク して、 DS-5 デバッガターゲッ ト接続を設定しま
す。
a. 必要なプラ ッ ト フォームを選択します。 たとえば、 [ARM-Versatile Express A9x4] を選択します。
b. [Bare Metal Debug] プロジェク ト タ イプを選択します。
c. 必要なデバッグ操作を選択します。 たとえば、 [Debug and Trace Cortex-A9x4 SMP via DSTREAM] を選択します。
d. デバッガとデバッグハード ウェアエージェン トの間の接続を設定します。
6. [Files] タブをク リ ッ ク してターゲッ ト環境を定義し、 デバッガを使用するホ
ス ト上のアプリ ケーシ ョ ンファ イルおよびライブラ リのデバッグバージ ョ ン選択します。
a. [Target Configuration] パネルで、 ターゲッ トにダウンロードするホス ト上
のアプリ ケーシ ョ ンを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-14ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
7. [Debugger] タブをク リ ッ ク して、 デバッガ設定を構成します。
a. [Run] コン ト ロールパネルで、 ターゲッ トに接続した後にデバッガで行
う アクシ ョ ンを指定します。
b. ホス ト作業ディ レク ト リ を設定するか、 またはデフォルト を使用します。
c. [Paths] パネルで、 デバッガがソースコードを表示する と きに使用するホ
ス ト上のソースの検索ディ レク ト リ を指定します。
8. 必要に応じて、 [Arguments] タブをク リ ッ ク して、 デバッグセッシ ョ ンの開始
時にセミ ホスティングを使用してアプ リ ケーシ ョ ンに渡される引数を入力します。
9. [Event Viewer] タブをク リ ッ ク して、 ITM キャプチャの設定を指定します。
a. [Enable ITM capture] を選択します。
b. ト レースバッファの 大サイズを入力します。 たとえば、 DSTREAM 接続
には 100MB を入力できます。 バッファを大き くする と よ り多くの ト レー
スデタを収集しますが、 処理に時間がかかるためパフォーマンスに悪影響があるこ とに注意して ください。
c. ト レースを受け取る ITM チャネルごとに設定を追加します。 これは、 ITM がプログラムでどのよ うに設定され使用されるかによって異なり ます。
10. [Apply] をク リ ッ ク してコンフ ィギュレーシ ョ ン設定を保存します。
11. [Debug] をク リ ッ ク してターゲッ トに接続します。
12. デバッグには、 DS-5 デバッグパースペクティブが必要です。 [Confirm Perspective Switch] ダイアログボッ クスが表示された場合は、 [Yes] をク リ ッ
ク してパースペクティブを切り替えます。
接続時に DS-5 デバッグパースペクティブが開いている場合は、 イベン ト ビューアの
関連するチャネルエディ タがすべて表示されます。
これらのオプシ ョ ンの詳細については、 ダイナミ ッ クヘルプを使用して下さい。
3.6.3 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • イベン ト ビューアのチャネルエディ タ (10-18 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-15ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-16ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.7 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リテ ィについて
インポートユーティ リ テ ィ cdbimporter は、 プラ ッ ト フォーム情報を DS-5 にインポー
トする簡単な方法を提供するこ とを目的にしています。 このため、 RVI/DSTREAM 接続またはモデル接続を介したプラ ッ ト フォームのデバッグと ト レースについては限定されたサポートのみ行います。
ターゲッ トデータベースには DS-5 用のプラ ッ ト フォーム情報が保持されています。 インポートユーティ リ テ ィは、 以下からの情報を使用してターゲッ トデータベースに新しいプラ ッ ト フォームエン ト リ を作成します。
• デバッグハード ウェアコンフ ィギュレーシ ョ ンユーティ リ ティ、 dbghwconfig または rviconfig を使用して作成され保存されたコンフ ィギュレーシ ョ ンファ イ
ル。
• CADI サーバで実行するモデル。 このモデルは、 すでに実行中のものでも、 コマ
ンド ラ インオプシ ョ ンで起動パスとファ イル名を指定したものでもいません。
ARM® は新しいディ レク ト リに新しいプラ ッ ト フォームエン ト リ を構築して、 新し
いターゲッ トデータベースを生成するこ とをお勧めします。 この理は、 DS-5 ター
ゲッ トデータベースは、 DS-5 の更新時に読み出し専用の場所にインス トールされ、
DS-5 ターゲッ トデータベースへのすべての変更が失われる可能性があるためです。 [Preferences] ダイアログを使用して、 DS-5 で複数のターゲッ トデータベースを指定
できます。 これによって、 新しいデータベース内のプラ ッ ト フォームが既存プロセッ
サ定義とレジスタ定義を使用するよ うにできます。
注 DS-5 には、 Eclipse 内から RVI/DSTREAM コンフ ィギュレーシ ョ ンファ イルを作成す
る機能はまだあ り ません。 デバッグハード ウェア設定ユーティ リ ティ、 現時点でこれを行う唯一の方法です。
インポートユーティ リ テ ィは、 以下のデバッグ操作を作成します。
• ハード ウェアとモデル用のシングルプロセッサベアメ タルおよび Linux カーネ
ルデバッグ。
• 複数個の同一プロセッサを持つターゲッ ト用の、 対称型マルチプロセス(SMP) ベアメ タルおよび Linux カーネルデバッグ操作。
• ETB/TPIU デバイスを含むハード ウェアターゲッ ト用の、 オンチップの Embedded Trace Buffer (ETB) の ト レース設定、 およびオフチップの ト レース
ポート インタフェースユニッ ト (TPIU) の ト レース設定。 ク ロス ト リ ガインタ
フェース (CTI) が存在する場合は、 インポートユーティ リ ティは ト レース ト
リガをキャ リーするよ うに設定します。
注 ETMv1.x はサポート されていません。
• Linux アプ リ ケーシ ョ ンのハード ウェアとモデル用のデバッグ設定。 ARM7TDMI® プロセッサまたは Cortex™-M シ リーズプロセッサはサポート され
ていません。
インポートユーティ リ テ ィは以下を作成しません。
• 非命令ト レースマク ロセルを設定するデバッグ操作。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-17ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
• big.LITTLE コンフ ィギュレーシ ョ ン。
SMP では、 CTI デバイスを使用する同期と使用しない同期用に、 デバッグ操作が重
複して生成されます。 CTI を使用する と、 サイ クル数の順に非常に低いレイテンシと
の強力な同期を生成しますが、 CTI は完全に実装され、 ARM リ ファレンス設計に合
わせて接続される必要があ り ます。 それ以外の的に使用してはいけません。 CTI を使
用しない同期の場合はレイテンシが高くな り ますが、 実装や使用に関する前提はあり ません。
多重化ピン用のオフチップ TPIU ト レースを手動で設定し、 そして信号のタイ ミ ング
問題に対応するため較正を行う必要があ り ます。
問題がある場合、 またはその他の設定を生成する必要がある場合は、 サポート担当者にお問い合わせください。
3.7.1 前提
インポートユーティ リ テ ィは、 デバッグ操作の作成時には、 以下を前提にします。
• ト レースマク ロセルと CoreSight™ ト レースファネルポート間に線形マッピング
が存在する。
• 組み込みト レースマクロセル (ETM) / プログラム ト レースマク ロセル (PTM)
のバージ ョ ンがプロセッサの種類ごとに固定されている。
• CTI デバイスはその他の操作には使用されません。
• 複数の CoreSight ETB、 TPIU またはト レースファネルを含むターゲッ トでは、
インポートユーティ リ テ ィは、 小値のベースアドレスを持つト レースファネル、 ETB、 および TPIU のそれぞれの 初の例についてコンフ ィギュレーシ ョ
ンを生成します。
表 3-1 プロセッサの種類ごとの ETM/PTM バージ ョ ン
プロセッサの種類 ETM/PTM
Cortex-A15 PTM
Cortex-A7 ETMv3.5
Cortex-A8 ETMv3.3
Cortex-A9 PTM
Cortex-R4 ETMv3.3
Cortex-R5 ETMv3.3
Cortex-R7 ETMv3.3
Cortex-M3 ETMv3.4
Cortex-M4 ETMv3.4
ARM9 シ リーズ ETMv1.x はサポート されていませ
ん。
ARM11 シ リーズ ETMv3.1
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-18ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.7.2 制限
デバッグハード ウェアコンフ ィギュレーシ ョ ンユーティ リ ティで、 またはモデルから、 自動設定可能なプラ ッ ト フォームのみインポートできます
DS-5 は特定のプロセッサのみサポート しています。 サポート されているプロセッサ
の詳しいリ ス ト を参照するには、 --list-cores オプシ ョ ン (-l) を使用してインポー
トユーティ リ ティ を実行して下さい。
インポートユーティ リ テ ィは適切なプロセッサと CP15 レジスタセッ ト との基本設定
を生成しますが、 この設定は常に完全というわけではあ り ません。 たとえば、 すべて
の Cortex-A9 プロセッサ上で TrustZone® レジスタが表示されるこ とは必ずしも適切で
はなく、 NEON レジスタはインポートプラ ッ ト フォームと して表示されません。
3.7.3 関連項目
タスク
• モデルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ンの作成
(3-21 ページ)
• RVC ファ イルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ン
の作成 (3-22 ページ) .
参照
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティの起動(3-20 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-19ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.8 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リテ ィの起動
以下のコマンド ラ イン構文を使用してインポートユーティ リ ティ を起動します。
cdbimporter -cdb config_db -target-cdb destination_db {file.rvc|-model model_exec}
各項目には以下の意味があ り ます。
-c=path,--cdb=path
プロセッサ定義とレジスタ定義を含むメ インデータベースへのパスを指定します。
-t=path,--target-cdb=path
デスティネーシ ョ ンデータベースが置かれている、 生成されるプラ ッ トフォームを受け取るディ レク ト リ 。
-m=path,--model=path
CADI サーバを提供するモデルからインポート します。
• モデルの実行可能ファ イルへのパスを入力する と、 ユーティ リティはモデルを起動して調べます。
• モデルの実行可能ファ イルへのパスを入力しない場合は、 以下のいずれかを行います。
— path 値を省略する。 この場合は、 ユーティ リ ティは実行モデ
ルを検索して調べます。
— モデルとの接続のデータを手動で入力する。 たとえば、 プロ
セッサ名、 ID およびプロセッサ定義を入力します。
RVC_file=path
デバッグハード ウェアコンフ ィギュレーシ ョ ンユーティ リ ティ、rviconfig で生成される設定ファイル (.rvc) から インポート します。
-l,--list-cores
--cdb オプシ ョ ンを付けて入力されたデータベースで定義されたプロ
セッサをすべて リ ス ト します。
-?,--help
主なコマンド ラ インオプシ ョ ンの一覧を表示します。
3.8.1 関連項目
タスク
• モデルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ンの作成
(3-21 ページ)
• RVC ファ イルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ン
の作成 (3-22 ページ) .
概念
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティについて(3-17 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-20ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.9 モデルからの DS-5 の新しいプラッ ト フォームコンフ ィギュレーシ ョ ンの作成
CADI サーバを提供するモデルからインポートするには、 以下の操作を行います。
1. コマンド ラインコンソールを起動します。
• Windows の場合、 [スタート ] → [すべてのプログラム] → [DS-5 Command Prompt] を選択します。
• Linux の場合 :
1. install_directory/bin ディ レク ト リ を PATH 環境変数に追加します。 既に設定されている場合は、 この手順を省略します。
2. Unix bash シェルを開きます。
2. モデルが実行中であるこ とを確認するか、 または実行中でない場合はそのモデルの場所を特定します。
3. コマンド ラインに必要なオプシ ョ ンを付けて、 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ テ ィ、 cdbimporter を起動します。
4. 正常に終了するまで、 コマンドプロンプ トに従います。
5. Eclipse を起動します。
a. [Window] メニューから [Preferences] を選択します。
b. [DS-5] 設定グループを展開します。
c. [Target Database] を選択します。
d. [追加…] をク リ ッ ク して、 新しいターゲッ トデータベースの場所を特定します。
e. ディ レク ト リ全体を選択します。
f. [OK] をク リ ッ ク してダイアログボッ クスを閉じます。
g. コンフ ィギュレーシ ョ ンデータベースパネルの [ 設定 ] で、 新しいター
ゲッ トデータベースを選択します。
h. リ ス トの終わりの方まで続けてク リ ッ ク していき、 新しいデータベースに移動します。
i. [ データベースの再ビルド…] をク リ ッ ク します。
j. [OK] をク リ ッ ク してダイアログボッ クスを閉じ、 設定を保存します。
3.9.1 関連項目
タスク
• RVC ファ イルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ン
の作成 (3-22 ページ) .
概念
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティについて(3-17 ページ) .
参照
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティの起動(3-20 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-21ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.10 RVC ファイルからの DS-5 の新しいプラッ ト フォームコンフ ィギュレーシ ョ ンの作
成
デバッグハード ウェアコンフ ィギュレーシ ョ ンユーティ リ ティ を使用して、 ターゲッ トに接続し、 コンフ ィギュレーシ ョ ンファ イル (.rvc) に情報を保存できます。 その結果のコンフ ィギュレーシ ョ ンファ イルは、 DS-5 コンフ ィギュレーシ ョ ンデー
タベースへの移植に使用できるプラ ト フォームのデバッグと ト レースサポートについては、 機能が限定されます。
RVC ファ イルからインポートするには、 以下の操作を行います。
1. コマンド ラインコンソールを起動します。
• Windows の場合、 [スタート ] → [すべてのプログラム] → [DS-5 Command Prompt] を選択します。
• Linux の場合 :
1. install_directory/bin ディ レク ト リ を PATH 環境変数に追加します。 既に設定されている場合は、 この手順を省略します。
2. Unix bash シェルを開きます。
2. ターゲッ ト接続用のコンフ ィギュレーシ ョ ンファ イルを作成します。
3. コマンド ラインに必要なオプシ ョ ンを付けて、 コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ テ ィ、 cdbimporter を起動します。
4. 正常に終了するまで、 コマンドプロンプ トに従います。
5. Eclipse を起動します。
a. [Window] メニューから [Preferences] を選択します。
b. [DS-5] 設定グループを展開します。
c. [Target Database] を選択します。
d. [追加…] をク リ ッ ク して、 新しいターゲッ トデータベースの場所を特定します。
e. ディ レク ト リ全体を選択します。
f. [OK] をク リ ッ ク してダイアログボッ クスを閉じます。
g. コンフ ィギュレーシ ョ ンデータベースパネルの [ 設定 ] で、 新しいター
ゲッ トデータベースを選択します。
h. リ ス トの終わりの方まで続けてク リ ッ ク していき、 新しいデータベースに移動します。
i. [ データベースの再ビルド…] をク リ ッ ク します。
j. [OK] をク リ ッ ク してダイアログボッ クスを閉じ、 設定を保存します。
3.10.1 関連項目
タスク
• モデルからの DS-5 の新しいプラ ッ ト フォームコンフ ィギュレーシ ョ ンの作成
(3-21 ページ) .
概念
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティについて(3-17 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-22ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
参照
• コンフ ィギュレーシ ョ ンデータベースインポートユーティ リ ティの起動(3-20 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-23ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.11 既存の起動コンフ ィギュレーシ ョ ンのエクスポート
既存の起動コンフ ィギュレーシ ョ ンをエクスポートするには
1. [File] メニューから [Export...] を選択します。
2. [Export] ダイアログボッ クスで、 [Run/Debug] グループを展開し、 [Launch Configurations] を選択します。
図 3-1 [Export launch configuration] ダイアログボックス
3. [Next] をク リ ッ ク します。
4. [Export Launch Configurations] ダイアログボッ クスで以下の手順を行います。
a. [DS-5 Debugger] グループを展開し、 1 つまたは複数の起動コンフ ィギュ
レーシ ョ ンを選択します。
b. [Browse...] をク リ ッ ク して、 ローカルファ イルシステム内の必要な場所
を選択します。
c. フォルダを選択して [OK] をク リ ッ ク します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-24ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
図 3-2 起動コンフ ィギュレーシ ョ ンの選択パネル
5. 必要に応じて、 [Overwrite existing file(s) without warning] を選択します。
6. [Finish] をク リ ッ ク します。
3.11.1 関連項目
タスク
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-25ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.12 既存の起動コンフ ィギュレーシ ョ ンのインポート
既存の起動コンフ ィギュレーシ ョ ンを Eclipse にエクスポートするには
1. [File] メニューから [Import...] を選択します。
2. [Import] ダイアログボッ クスで、 [Run/Debug] グループを展開し、 [Launch Configurations] を選択します。
図 3-3 [Import launch configuration] ダイアログボックス
3. [Next] をク リ ッ ク します。
4. [Browse...] をク リ ッ ク して、 ローカルファ イルシステム内の必要な場所を選択
します。
5. 起動ファ イルが存在するフォルダを選択し、 [OK] をク リ ッ ク します。
6. 必要なフォルダと起動ファイルのチェッ クボッ クスを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-26ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
図 3-4 起動コンフ ィギュレーシ ョ ンファイルの選択パネル
7. 既存のコンフ ィギュレーシ ョ ンを同じ名前で置き換える場合は、 [Overwrite existing launch configurations without warning] を選択します。
8. [Finish] をク リ ッ ク します。
3.12.1 関連項目
タスク
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ) .
参照 • [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-27ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの設定と接続
3.13 ターゲッ トからの切断
デバッグ制御ビューで、 [Disconnect from Target] ツールバーアイコンをク リ ッ ク し
ます。 または、 コマンドビューのコマンドフ ィールドに 「quit」 と入力し、 [Submit]をク リ ッ ク します。
3.13.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ) .
参照 • [Debug Control] ビュー (10-23 ページ)
• [Commands] ビュー (10-20 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— quit, exit (2-141 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 3-28ID 0 5 1 5 1 2 Non-Confidential
第 4 章 実行制御
以下の各ト ピッ クでは、 特定のイベン トが発生したと き と特定の条件が満たされたと きにターゲッ トの実行を停止する方法について説明します。
タスク • イ メージの実行 (4-6 ページ)
• 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• ト レースポイン トの設定 (4-15 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ)
• アプ リ ケーシ ョ ンのステップ実行 (4-28 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
• デバッガパスの代入規則の設定 (4-34 ページ) .
概念
• ターゲッ トへのイ メージのロードについて (4-2 ページ)
• デバッガへのデバッグ情報のロードについて (4-4 ページ)
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-1ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.1 ターゲッ トへのイメージのロードについて
アプリ ケーシ ョ ンイ メージのデバッグを開始するには、 まずファ イルをターゲッ トにロード しておく必要があ り ます。 ターゲッ ト上のファイルは、 ローカルホス ト ワー
クステーシ ョ ン上のファ イルと同じでなければなり ません。 コードレイアウ トは同じ
でなければなり ませんが、 ターゲッ ト上のファイルにはデバッグ情報が必要です。
手動でファイルをターゲッ トにロードするこ と も、 接続が確立された後でこれを自動的に行う よ う、 デバッガ接続を構成するこ と もできます。 一部のターゲッ ト接続で
は、 ロード操作がサポート されていないため、 ロード操作に関連する メニューオプシ ョ ンはディセーブルされています。
ターゲッ トに接続した後は、 [Debug Control] ビューのメニューエン ト リである
[Load...] を使用してファ イルをロードするこ と もできます。 イ メージをロードする
ために使用できるオプシ ョ ンは以下のとおりです。
[Load Image Only] アプリ ケーシ ョ ンイ メージをターゲッ トにロード します。
[Load Image and Debug Info]
アプ リ ケーシ ョ ンイ メージをターゲッ トにロード し、 これと同じイ メージからのデバッグ情報をデバッガにロード します。
[Load Offset] イ メージ内のすべてのアドレスに追加する 10 進数または 16 進数
のオフセッ ト を指定します。 16 進数のオフセッ トには、 接頭辞 0x を付ける必要があ り ます。
[Enable on-demand loading]
デバッガによるデバッグ情報のロード方法を指定します。 このオ
プシ ョ ンを有効にする と、 ロード時間が短縮され、 メモ リの使用量も小さ くな り ますが、 デバッグの速度が低下するこ とがあ り ます。
図 4-1 [Load File] ダイアログボックス
4.1.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ターゲッ トからの切断 (3-28 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-2ID 0 5 1 5 1 2 Non-Confidential
実行制御
• イ メージの実行 (4-6 ページ) .
概念
• デバッガへのデバッグ情報のロードについて (4-4 ページ) .
参照 • [Debug Control] ビュー (10-23 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ) .• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— load (2-119 ページ)
— loadfile (2-120 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-3ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.2 デバッガへのデバッグ情報のロードについて
実行可能イ メージには、 アプ リ ケーシ ョ ンコード とデータに加え、 関数名や変数名などのシンボ リ ッ ク参照も含まれています。 通常、 これらのシンボ リ ッ ク参照はデ
バッグ情報と呼ばれます。 デバッグ情報がないと、 デバッガはソースレベルでデバッ
グするこ とができません。
ソースレベルでアプリ ケーシ ョ ンをデバッグするには、 デバッグ情報を使用し、 適度なレベルの 適化を行って、 イ メージファ イルと共有オブジク ト ファ イルをコンパイルする必要があ り ます。 例えば、 ARM® コンパイラまたは GNU コンパイラのい
ずれかを使用してコンパイルする場合は、 以下の各オプシ ョ ンを使用できます。
-g -O0
デバッグ情報のロード とファ イルのロードは別の操作となるため、 ファ イルのロード時にデバッグ情報はロード されません。 典型的なロードの順序は以下のとおりで
す。
1. メ インのアプリ ケーシ ョ ンイ メージをロード します。
2. 共有オブジェク トがある場合は、 それをロード します。
3. メ インのアプリ ケーシ ョ ンイ メージのシンボルをロード します。
4. 共有オブジェク トのシンボルをオンデマンドでロード します。
イ メージと共有オブジェク トはターゲッ トにあらかじめロード されている場合があり ます。ROM デバイスや OS 認識ターゲッ トのイ メージはその例す。 対応するイ メー
ジファ イルと共有オブジェク ト ファ イル (ある場合) には、 デバッグ情報を含め、ローカルホス ト ワークステーシ ョ ンから クセスできるこ とが必要です。 これによ り、
これらのイ メージファ イルと共有オブジェク ト ファ イルからのデバッグ情報のみをロードするよ う ターゲッ ト接続を構成できるよ うにな り ます。 ターゲッ ト環境に必要
な場合は、 デバッグコンフ ィギュレーシ ョ ンファ イルの [Files] タブにある [Load symbols from file] オプシ ョ ンを使用します。
ターゲッ トに接続した後は、 [Debug Control] ビューのメニューエン ト リである
[Load...] を使用してファ イルをロードするこ と もできます。 デバッグ情報をロード
するために使用できるオプシ ョ ンは以下のとおりです。
[Add Symbols File] デバッガに追加のデバッグ情報をロード します。
[Load Debug Info] デバッガにデバッグ情報をロード します。
[Load Image and Debug Info]
アプ リ ケーシ ョ ンイ メージをターゲッ トにロード し、 これと同じイ メージからのデバッグ情報をデバッガにロード します。
[Load Offset] イ メージ内のすべてのアドレスに追加する 10 進数または 16 進数
のオフセッ ト を指定します。 16 進数のオフセッ トには、 接頭辞 0x を付ける必要があ り ます。
[Enable on-demand loading]
デバッガによるデバッグ情報のロード方法を指定します。 このオ
プシ ョ ンを有効にする と、 ロード時間が短縮され、 メモ リの使用量も小さ くな り ますが、 デバッグの速度が低下するこ とがあ り ます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-4ID 0 5 1 5 1 2 Non-Confidential
実行制御
図 4-2 [Load additional debug information] ダイアログボックス
イ メージまたは共有オブジェク ト内のデバッグ情報には、 デバッグ情報を構築するために使用されたソースのパスも含まれています。 イ メージまたは共有オブジェク ト
内のアドレスで実行が停止する と、 デバッガは対応するソースファ イルを開こ う とします。 このパスが存在しないか、 必要なソースファ イルが見つからない場合は、
ソースファ イルの場所をデバッガで指定する必要があ り ます。 これを行うには、 代入
規則を設定して、 イ メージから取得したパスを、 ローカルホス ト ワークステーシ ョンからアクセスできる、 必要なソースファ イルのパス と関連付けられるよ うにします。
4.2.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ターゲッ トからの切断 (3-28 ページ)
• イ メージの実行 (4-6 ページ)
• デバッガパスの代入規則の設定 (4-34 ページ) .
概念
• ターゲッ トへのイ メージのロードについて (4-2 ページ) .
参照 • [Debug Control] ビュー (10-23 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— add-symbol-file (2-32 ページ)
— discard-symbol-file (2-65 ページ)
— file, symbol-file (2-75 ページ)
— set substitute-path (2-172 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-5ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.3 イメージの実行
アプリ ケーシ ョ ンイ メージのターゲッ ト上での実行状況を監視するには、 アプ リケーシ ョ ンイ メージを実行している必要があ り ます。
イ メージを実行するには、 まずイ メージをターゲッ トにロード しておかなければなり ません。 イ メージはターゲッ トにあらかじめロードするか、 デバッグセッシ ョ ンの
一部と してターゲッ トにロードできます。
注 ターゲッ ト上に保存されているファ イルには、 デバッグ情報を含める必要があ り ま
せん。 ただし、 これらのファ イルをデバッグするには、 ローカホス ト ワークステーシ ョ ン上の対応するファ イルにデバッグ情報が含まれているこ とが必要です。
接続を設定し、 接続の確立後にデバッガに行わせる実行制御を定義するには、[Debug Configurations] ダイアログボッ クスを使用して ください。 これ行うには、
[Run] メニューから [Debug Configurations...] を選択します。
接続が確立されたら、 [Debug Control] ビューのツールバーアイコンを使用して、 デ
バッグセッシ ョ ンを制御できます。
4.3.1 関連項目
タスク
• 第 5 章 ターゲッ トの検査 .
参照 • [Debug Control] ビュー (10-23 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— continue (2-54 ページ)
— run (2-147 ページ)
— start (2-204 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-6ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.4 ブレークポイン ト とウォッチポイン トについて
ブレークポイン ト と ウォ ッチポイン ト を使用する と、 特定のイベン トが発生したとき と特定の条件が満たされたと きにターゲッ ト を停止できます 実行が停止したら、
メモ リ、 レジスタ、 または変数の内容を検証するか、 実行を再開する前に行う よ う指定しておいた他の操作を行う こ とができます。
デバッガには以下のタイプが用意されています。
ブレークポイン ト ブレークポイン ト を使用する と、 実行が特定のアドレスに達した
と きにアプ リ ケーシ ョ ンを中断できます。 ブレークポイン トは、
常に特定のメモ リ アドレス と関連しています。 そのメモ リ アドレスに何が格納されているかは問いません。 実行がブレークポイン
トに達する と、 通常の実行は、 そのブレークポイン トに格納されている命令が実行される前に停止します。
以下を設定できます。
• 指定したアドレスで特定の命令が実行されたと きに ト リガされるソフ ト ウェアブレークポイン ト
• 特定のメモ リ アドレスからフェ ッチされる命令をプロセッサが実行しよ う と したと きに ト リガされるハード ウェアブレークポイン ト
• 式の評価結果が true の場合、 または無視する回数に達したと
きに ト リガされる条件ブレークポイン ト
• ヒ ッ ト された後で削除される一時的なソフ ト ウェアブレークポイン ト またはハード ウェアブレークポイン ト
設定できるブレークポイン トのタイプは、 以下の要因によって決ま り ます。
• メモ リ領域とそれに関連したアクセス属性
• ターゲッ トプロセッサによって提供されるハード ウェアサポート
• ターゲッ ト接続の管理に使用されるデバッグインタフェース
• 実行状態 (OS 認識アプリ ケーシ ョ ンをデバッグしている場
合)
ウォ ッチポイン ト ウォッチポイン トはブレークポイン ト と似ていますが、 特定のア
ドレスから実行されている命令ではなく、 監視するデータアクセスのアドレスまは値である という点が異な り ます。 どの場所に格
納されている内容をテス トするかは、 レジスタまたはメモ リ アドレスで指定します。 ウォ ッチポイン トは、 データ依存であるこ と
を示す、 データブレークポイン ト という名前で呼ばれるこ と もあり ます。 監視対象のアドレスがアプ リ ケーシ ョ ンによってアクセ
スされる と、 アプ リ ケーシ ョ ンの実行は停止します。
以下を設定できます。
• 特定のメモ リ位置を特定の方法でアクセスしたと きに ト リガされるウォ ッチポイン ト
• 式の評価結果が true の場合、 または無視する回数に達したと
きに ト リガされる条件付きウォッチポイン ト
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-7ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.4.1 ブレークポイン ト とウォッチポイン ト を設定する際の注意事項
ブレークポイン ト と ウォ ッチポイン ト を設定する と きは、 以下の点に注意してください。
• 使用可能なハード ウェアブレークポイン トの数はターゲッ トによって異な り ます。
• 高レベルの 適化を行ってイ メージをコンパイルしている場合、 または C++ テンプレートがイ メージに含まれている場合、 ソースコード内にブレークポイント を設定するこ とによる効果は、 ブレークポイン ト をどこに設定するかによって決ま り ます。 例えば、 インライン関数または C++ テンプレートにブレークポ
イン ト を設定する と、 その関数またはテンプレートのインスタンスごとにブレークポイン トが 1 つ作成されます。 そのため、 ターゲッ トのブレークポイン
ト リ ソースが不足する可能性があ り ます。
• メモ リ管理ユニッ ト (MMU) をイネーブルする と、 メモ リ領域が読み出し専
用に設定される場合があ り ます。 そのメモ リ領域にソフ ト ウェアブレークポイ
ン トが含まれている場合、 このソフ ト ウェアブレークポイン ト を削除するこ とはできません。 そのため、 MMU をイネーブルする前に、 ソフ ト ウェアブレーク
ポイン ト をク リ アしておく こ とが重要です。
• ウォ ッチポイン トは、 常に有効範囲にあるため、 グローバル / 静的データシン
ボルでしかサポート されていません。 関数からステップアウ トする と きはロー
カル変数を使用できません。
• ターゲッ トによっては、 ウォッチポイン トがサポート されていないこ と もあ ります。 現在、 ウォ ッチポイン ト コマンドは、 デバッグハード ウェアエージェン
ト を使用するハード ウェアターゲッ トでのみ使用できます。
• ウォ ッチポイン ト を ト リガする命令のアドレスが、 PC のレジスタに表示される
アドレス と異なる可能性があ り ます。 これはプロセッサのパイプライン効果が
原因です。
• 共有オブジェク ト を使用するアプリ ケーシ ョ ンをデバッグする場合、 共有オブジェク ト内に設定されているブレークポイン トは、 その共有オブジク トがアンロード される と再評価されます。 これらのブレークポイン ト と ウォ ッチポイン
トの う ち、 解決可能なアドレスを持つものは設定されそれ以外は保留中のままとな り ます。
• ブレークポイン トが関数名によって設定されている場合は、 既にオンデマンドロード されているインラインインスタンスのみが見つかり ます。 関数のすべて
のインラインインスタンスを見つけるには、 オンデマンド ロードをディセーブルする必要があ り ます。
4.4.2 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-8ID 0 5 1 5 1 2 Non-Confidential
実行制御
概念
• デバッガの概念 (2-4 ページ) .
参照
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— awatch (2-36 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-9ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.5 実行ブレークポイン トの設定
デバッガを使用する と、 ターゲッ ト メモ リのタイプに応じて、 ソフ ト ウェアブレークポイン ト またはハード ウェアブレークポイン ト を設定できます。 ソフ ト ウェアブ
レークポイン トは、 デバッガによって実装され、 ブレークポイン ト アドレスにある命令を特殊な命令オペコードで置き換えます。 デバッガにはアプリ ケーシ ョ ン メモ リ
への書き込みアクセス権が必要なため、 ソフ ト ウェアブレークポイン トは RAM でし
か設定できません。 ハ ード ウェアブレークポイン トは、 プロセッサのアドレスバス
とデータバスを監視する、 EmbeddedICE® ロジッ クによって実装されます。 シ ミ ュ
レート されたターゲッ トの場合、 ハード ウェアブレークポイン トはシ ミ ュレータソフ ト ウェアによって実装されます。
実行ブレークポイン ト を設定するには、 C/C++ エディ タの左側のマーカバーをダブ
ルク リ ッ クするか、 逆アセンブ リ ビュー内のブレークポイン ト を定する位置でダブルク リ ッ ク します。 ブレークポイン ト を削除するには、 ブレークポイン トマーカをダ
ブルク リ ッ ク します。
以下の図に、 C/C++ エディ タおよび逆アセンブリ ビューにおけるブレークポイン ト
の例を示します。 これらのブレークポイン トは、 [Breakpoints] ビューにも表示され
ます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-10ID 0 5 1 5 1 2 Non-Confidential
実行制御
図 4-3 実行ブレークポイン トの設定
4.5.1 関連項目
タスク • 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-11ID 0 5 1 5 1 2 Non-Confidential
実行制御
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Registers] ビュー (10-47 ページ)
• [Memory] ビュー (10-40 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— set breakpoint (2-156 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-12ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.6 データウォッチポイン トの設定
アプリ ケーシ ョ ンを実行する と きに、 ソースコード内の特定の変数または式の値を監視する必要が生じる場合があ り ます。 これを行うには、 ウォ ッチポイン ト を設定し
ます。
[Variables] ビューでデータシンボルを右ク リ ッ ク し、 [Toggle Watchpoint] を選択し
て必要なアクセスタイプを選択し、 [OK] をク リ ッ ク します。 ウォ ッチポイン トが
[Variables] ビューと [Breakpoint] ビューに表示されます。
図 4-4 データウォッチポイン トの設定
注 ウォ ッチポイン トは、 スカラ値でのみサポート されます
ターゲッ トによっては、 ウォッチポイン トがサポート されていないこ と もあ り ます。 現在、 ウォ ッチポイン トは、 デバッグハード ウェアエージェン ト を使用するハードウェアターゲッ トにのみ設定できます。
ウォ ッチポイン ト を ト リガする命令のアドレスが、 PC のレジスタに表示されるアド
レスの命令と対応していない可能性があ り ます。 これはパイプライン効果が原因で
す。
4.6.1 関連項目
タスク • ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
概念 • デバッガの概念 (2-4 ページ)
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Expressions] ビュー (10-32 ページ)
• [Memory] ビュー (10-40 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-13ID 0 5 1 5 1 2 Non-Confidential
実行制御
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— awatch (2-36 ページ)
— clearwatch (2-51 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-14ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.7 ト レースポイン トの設定
ト レースポイン トは、 アプリ ケーシ ョ ンの実行中にト レースキャプチャデバイスの動作を ト リガする と きに使用される メモ リ位置です。 ト レースポイン トは、 指定した
アドレスでプロセッサが命令を実行したと きに達するポイン トです。 タイプに基づい
て、 ト レースキャプチャが有効または無効にされます。
ト レースポイン トは以下のいずれかのビューから設定できます。
• ARM アセンブラエディ タ
• C/C++ エディ タ
• [Disassembly] ビュー
• 関数ビュー
• [Memory] ビュー
• ト レースビューの逆アセンブリパネル
ト レースポイン ト を設定するには、 ト レースポイン ト を設定する位置で左側のマーカバーを右ク リ ッ ク し、 コンテキス ト メニューから [ ト レースの起点の切り替え]、[ ト レースの終点の切り替え]、 または [ ト レースの ト リガポイン トの切り替え] のいずれかを選択します。 ト レースポイン ト を削除するには、 同じ ト レースポイン トで
この手順を繰り返すか、 [ブレークポイン ト ] ビューから ト レースポイン ト を削除します。
ト レースポイン トは、 接続するたびに格納されます。 アクティブな接続が切断された
場合、 ト レースポイン トはソースエディ タからのみ作成できます。
すべての ト レースポイン トは、 [ブレークポイン ト ] ビューに表示されます。
4.7.1 関連項目
タスク • ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ) .
概念 • デバッガの概念 (2-4 ページ)
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• 関数ビュー (10-35 ページ)
• [Trace] ビュー (10-57 ページ)
• [Variables] ビュー (10-61 ページ)
• [ ト レースポイン トのプロパティ] ダイアログボッ クス (10-76 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-15ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.8 条件ブレークポイン トの設定
条件ブレークポイン トには、 そのブレークポイン ト を ト リガするために満たす必要のある条件をテス トするプロパティが割り当てられています。 例えば、 以下があ り ま
す。
• 指定された値の変数をテス トする
• 関数を設定された回数実行する
• 特定のスレッ ド またはプロセッサでのみブレークポイン ト を ト リガする
条件ブレークポイン トは、 ヒ ッ トする頻度が高いと非常に侵入的とな り、 パフォーマンス低下の原因になる可能性があ り ます。 これは、 ブレークポイン トが ト リ ガされ
るたびにデバッガがターゲッ ト を停止するためです。 指定された条件がチェッ ク さ
れ、 評価結果と して true が返された場合は、 ターゲッ トが停止状態のままになり、
それ以外の場合は実行が再開されます。
注 サブブレークポイン ト を持つブレークポイン トには、 スク リプ ト を割り当てないで
ください。 スク リプ ト を割り当てる と、 デバッガがそれぞれのサブブレークポイン ト
でスク リプ トの実行を試みます。 この場合、 エラーメ ッセージが表示されます。
[ブレークポイン トのプロパティ] ダイアログボッ クスで既存のブレークポイン トに条件を割り当てるには、 以下の手順に従います。
1. ブレークポイン ト ビューで、 変更するブレークポイン ト を右ク リ ッ ク してコンテキス ト メニューを表示します。
2. [Properties...] を選択して [Breakpoint Properties] ダイアログボッ クスを表示し
ます。
3. 特定のブレークポイン トに関する条件式を設定するには、 [Stop Condition]フ ィールドに C 形式の式を入力します。 例えば、 アプリ ケーシ ョ ンに変数 x がある場合は、 以下のよ うに指定できます。
x == 10
4. 特定のパスカウン トに達するまでブレークポイン トのヒ ッ ト を遅らせるよ うデバッガに指定するには、 [Ignore Count] フ ィールドにパスカウン ト を入力しま
す。 例えば、 ループの繰り返し回数が 100 回の場合に、 パスカウン トが 50 に達
した後でそのループのブレークポイン ト を ヒ ッ トするよ うにするには、 50 と入
力します。
5. 選択したブレークポイン トが ト リガされたと きにスク リプ ト を実行するには、[On break, run script] フ ィールドで以下のいずれかの方法でスク リプ ト ファ イ
ルを指定します。
• 表示されるフ ィールドに場所およびファイル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部にあるディ レク
ト リのファ イルを選択します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内のプロジェク トディ レ
ク ト リ またはサブディ レク ト リのファ イルを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-16ID 0 5 1 5 1 2 Non-Confidential
実行制御
注 ブレークポイン トが関連付けられているスク リプ ト ファ イルのコマンドには注
意が必要です。 例えば、 スク リプ ト ファ イルに quit コマンドが含まれている場
合は、 ブレークポイン トがヒ ッ ト される とデバッガがターゲッ トから切断されます。
6. ブレークポイン ト アクシ ョ ンがすべて完了したと きにアプ リ ケーシ ョ ンの実行を自動的に継続する機能をデバッガでイネーブルするには、 [Continue Execution] チェ ッ クボッ クスを選択します。
または、 ブレークポイン トに関連付けられているスク リプ ト ファ イルの 後のコマンド と して、 continue コマンドを入力するこ と もできます。
7. ブレークポイン ト を 1 つ以上のスレッ ド またはプロセッサで設定する場合は、
以下の手順を実行します。
a. 選択パネルを有効にするには、 [選択したスレッ ド またはコアでブレーク]を選択します。
b. ブレークポイン ト を割り当てる各スレッ ド またはプロセッサのチェッ クボッ クスを選択します。
8. [OK] をク リ ッ ク して変更を保存します。
図 4-5 条件ブレークポイン トの設定
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-17ID 0 5 1 5 1 2 Non-Confidential
実行制御
複数のステート メン ト を使用してソースコードの単一行に設定されたブレークポイン トは、 サブブレークポイン ト と して親ブレークポイン トに割当てられます。 各サブ
ブレークポイン トのイネーブル、 ディセーブル、 および表示は、 単一のステート メン トから成るブレークポイン ト と同じ方法で行う こ とができます。 条件は 上位のブ
レークポイン トにのみ割り当てられるため、 親ブレークポイン ト とサブブレークポイン トの両方に影響します。
4.8.1 複数の条件を単一のブレークポイン トに設定する際の注意事項
複数の条件を単一のブレークポイン トに設定する と きは、 以下の点に注意してください。
• 停止条件と無視する回数を設定した場合、 停止条件が満たされない限り、 無視する回数はデク リ メン ト されません。 例えば、 変数 c によって制御され、 繰り
返し回数が 10 回に設定されているループにブレークポイン トがある と します。
停止条件 c==5 を設定し、 無視する回数を 3 に設定した場合、 4 回目に c==5 でヒ ッ トするまで、 このブレークポイン トはアクティブにならない可能性があ ります。 その後は、 c==5 でヒ ッ トするたびにアクティブになり ます。
• 選択したスレッ ド またはプロセッサでブレークするよ う指定した場合、 停止条件と無視する回数は選択したスレッ ド またはプロセッサに対してのチェッ ク されます。
• 条件は、 以下の順序で評価されます。
1. スレッ ド またはプロセッサ
2. condition3. ignore count
4.8.2 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Breakpoint properties] ダイアログボッ クス (10-70 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-18ID 0 5 1 5 1 2 Non-Confidential
実行制御
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— set breakpoint (2-156 ページ)
— silence (2-202 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-19ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.9 特定のスレッ ドへのブレークポイン トの設定
ブレークポイン トはデフォルトですべてのスレッ ドに適用されますが、 ブレークポイン トのプロパティを編集して、 ブレークポイン トが特定のスッ ドにしか適用されないよ うにするこ とができます。
1. ブレークポイン ト ビューで、 変更するブレークポイン ト を右ク リ ッ ク してコンテキス ト メニューを表示します。
2. [Properties...] を選択して [Breakpoint Properties] ダイアログボッ クスを表示し
ます。
3. 必要に応じてブレークポイン ト条件を割り当てます。
4. [Break on Selected Threads] チェ ッ クボッ クスを選択してスレッ ドの選択をイ
ネーブルします。
5. ブレークポイン ト を割り当てる各スレッ ドのチェッ クボッ クスを選択します。
6. [OK] をク リ ッ ク して変更を保存します。
注 特定のスレッ ドに設定されたブレークポイン トの条件は、 そのスレッ ドに対しての
みチェッ ク されます。
図 4-6 特定のスレッ ドへのブレークポイン トの設定
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-20ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.9.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— info threads (2-112 ページ)
— thread, core (2-215 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-21ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.10 ブレークポイン ト とウォッチポイン トの保留
ブレークポイン ト と ウォ ッチポイン トは、 デバッグ情報が使用可能な場合に設定できます。 ただし、 保留中のブレークポイン ト と ウォ ッチポイン ト を使用する と、 関連
するデバッグ情報が使用可能になる前に、 ブレークポイン ト と ウォ ッチポイン ト を設定するこ とが可能にな り ます。
デバッガは、 デバッグ情報が変更される と、 保留中のブレークポイン ト と ウォ ッチポイン ト をすべて自動的に再評価します。 これらのブレークポイン ト と ウォ ッチポイ
ン トの う ち、 解決可能なアドレスを持つものは設定され、 それ以外は保留中のままとな り ます。
ブレークポイン ト ビューでは、 保留中のブレークポイン ト またはウォッチポイン トの解決を強制的に実行できます。 この機能は、 共有ライブラ リの検索パスを手動で変
更した場合などに便利です。 そのためには、 以下の手順を実行します。
1. 解決する保留中のブレークポイン ト またはウォッチポイン ト を右ク リ ッ ク します。
2. [Resolve] をク リ ッ ク します。 これによ り、 アドレスの検索とブレークポイン
ト またはウォッチポイン トの設定が試みられます。
保留可能なブレークポイン ト またはウォッチポイン ト を手動で設定するには、advance、 awatch、 break、 hbreak、 rwatch、 tbreak、 thbreak、 watch のいずれかのコマンド
で -p オプシ ョ ンを使用します。 デバッガコマンドは [Commands] ビューで入力でき
ます。
以下に例を示します。
break -p lib.c:20 # 保留中のブ レー ク ポ イ ン ト を lib.c の行 20 で設定
awatch -p *0x80D4 # 保留中の読み出し /書き込みウ ォ ッ チポ イ ン ト を ア ド レ ス 0x80D4 に設定
4.10.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-22ID 0 5 1 5 1 2 Non-Confidential
実行制御
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— awatch (2-36 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-23ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.11 ファイルへの DS-5 ブレークポイン ト設定のエクスポート
DS-5 ブレークポイン ト設定をファ イルにエクスポートするには
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
2. [Breakpoints] ビューのメニューから [Export Breakpoints] を選択します。
3. ローカルファイルシステム内の必要な場所を選択して、 ファ イル名を入力します。
4. [Save] をク リ ッ ク します。
注 DS-5 ブレークポイン ト ビューに表示されているブレークポイン ト と ウォ ッチポイン
トがすべて保存されます。
4.11.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルからの DS-5 ブレークポイン ト設定のインポート (4-26 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— awatch (2-36 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-24ID 0 5 1 5 1 2 Non-Confidential
実行制御
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-25ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.12 ファイルからの DS-5 ブレークポイン ト設定のインポート
DS-5 ブレークポイン ト設定をファ イルからインポートするには
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
2. [Breakpoints] ビューのメニューから [Import Breakpoints] を選択します。
3. ブレークポイン ト設定が含まれているファ イルをローカルファイルシステムから選択します。
4. [Open] をク リ ッ ク します。
注 現在の接続に関する既存の設定が削除され、 選択したファ イルに含まれている DS-5 ブレークポイン ト設定と ウォッチポイン ト設定で置き換えられます。
4.12.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ファ イルへの DS-5 ブレークポイン ト設定のエクスポート (4-24 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— advance (2-34 ページ)
— awatch (2-36 ページ)
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— break-stop-on-vmid (2-46 ページ)
— clear (2-49 ページ)
— condition (2-52 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-26ID 0 5 1 5 1 2 Non-Confidential
実行制御
— enable breakpoints (2-70 ページ)
— hbreak (2-80 ページ)
— ignore (2-84 ページ)
— info breakpoints, info watchpoints (2-87 ページ)
— resolve (2-145 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— tbreak (2-211 ページ)
— thbreak (2-213 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-27ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.13 アプリケーシ ョ ンのステップ実行
デバッガでは、 ソースレベルまたは命令レベルでアプリ ケーシ ョ ンを順番にステップ実行するこ とによ り、 イ メージの実行を細かく制御するこ とができます。
注 ソースレベルのステップ実行のためのコマンドを使用するには、 デバッグ情報を使
用してコードをコンパイルする必要があ り ます。 デフォルトで、 デバッグ情報を持た
ない関数に対するソースレベルの呼び出しはステップオーバーされます。 このデフォ
ルト設定を変更するには、 set step-mode コマンドを使用します。
アプリ ケーシ ョ ンをステップ実行する方法はいくつかあ り ます。 選択できるステップ
実行は以下のとおりです。
• すべての関数呼び出しをステップ実行またはステップオーバーする
• ソースレベルまたは命令レベルでステップ実行する
• ソースコードの単一行に含まれている複数のステート メン ト をステップ実行する (for ループの場合など)
ソースレベルでステップ実行する場合は、 デバッガが一時的なブレークポイン ト を使用して特定の場所で実行を停止するこ とに注意する必要があ り ます。 これらの一時
的なブレークポイン トには、 ハード ウェアブレークポイン ト を使用するこ とが必要となる場合があ り ます。 このこ とは、 ROM またはフラ ッシュに格納されたコードを
ステップ実行する場合は特に当てはま り ます。 使用可能なハード ウェアブレークポイ
ン ト リ ソースが不足している場合は、 デバッガによってエラーメ ッセージが表示されます。
[Debug Control] ビューのステップ実行ツールバーを使用する と、 ソース行単位また
は命令単位でアプリ ケーシ ョ ンをステップ実行できます。
図 4-7 [Debug Control] ビュー
指定した回数ステップ実行するには、 コマンドビューを使用して、 回数を表す数値を指定して、 ステップ実行コマンドのいずれかを手動で実行する必要があ り ます。 以下に例を示します。
steps 5 # 5 つのソースス テー ト メ ン ト を実行
stepi 5 # 5 つの命令を実行
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-28ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.13.1 関連項目
タスク • ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ)
• 共有ライブラ リのデバッグについて (6-12 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ) .
概念
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— next (2-132 ページ)
— nexti (2-133 ページ)
— nexts (2-134 ページ)
— finish (2-77 ページ)
— set step-mode (2-170 ページ)
— show step-mode (2-196 ページ)
— step (2-206 ページ)
— stepi (2-207 ページ)
— steps (2-208 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-29ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.14 Unix シグナルの処理
ARM プロセッサには、 Unix 信号を ト ラ ップするための Linux アプ リ ケーシ ョ ン向け
機能が用意されています。 これらは、 [Breakpoints] ビューのメニューから [Manage Signals] を選択するか、 handle コマンドを使用して、 デバッガで管理できます。 また、 info signals コマンドを使用して、 ハンド ラの現在の設定を表示するこ と もでき
ます。
デフォルトのハンド ラ設定は、 デバッグアクティ ビティのタイプによって異なり ます。 デフォルトでは、 例えば Linux カーネルの接続の場合、 すてのシグナルがター
ゲッ ト上の Linux によって処理されます。
図 4-8 シグナルハンドラ設定の管理
注 Unix シグナルである SIGINT と SIGTRAP は、 それぞれプロセス とブレークポイン ト を非
同期停止するためにデバッガによって内部で使用されるため、 他のシグナルと同じ方法でデバッグできません。
4.14.1 例
シグナルを無視するが、 シグナルが ト リガされたと きにイベン ト をログするよ う アプ リ ケーシ ョ ンで指定するには、 シグナルに基づく停止をイネブルする必要があ ります。 以下の例では、 SIGHUP 信号が発生する と、 デバッガが停止し、 メ ッセージが出
力されます。 この設定を使用する と、 シグナルハンド ラは呼び出されず、 デバッグ対
象アプリ ケーシ ョ ンはシグナルを無視して、 実行を継続します。
例 4-1 SIGHUP シグナルの無視
handle SIGHUP stop print # SIGHUP シグナルに基づ く停止と出力を イネーブル
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-30ID 0 5 1 5 1 2 Non-Confidential
実行制御
以下の例は、 シグナルハンド ラのデバッグ方法を示しています。 これを行うには、 シ
グナルに基づく停止をディセーブルして、 シグナルハンド ラでブレークポイン ト を設定する必要があ り ます。 これが必要となるのは、 シグナルに基づく停止がディセー
ブルされている場合、 そのシグナルの処理は、 登録されたハンド ラにシグナルを渡すプロセスによって実行されるためです。 ハンド ラが登録されていない場合は、 デ
フォルトのハンド ラが実行され、 通常、 アプ リ ケーシ ョ ンは終了します。
例 4-2 SIGHUP シグナルのデバッグ
handle SIGHUP nostop noprint # SIGHUP シグナルに基づ く停止と出力をデ ィ セーブル
4.14.2 関連項目
タスク
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ)
• 共有ライブラ リのデバッグについて (6-12 ページ)
• プロセッサ例外処理 (4-32 ページ) .
概念
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Commands] ビュー (10-20 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• [Manage Signals] ダイアログボッ クス (10-77 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— handle (2-79 ページ)
— info signals, info handle (2-107 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-31ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.15 プロセッサ例外処理
ARM プロセッサには、 プロセッサ例外を ト ラ ップするためのベアメ タル向け機能が
用意されています。 この機能がイネーブルされている と きの効は、 選択したベクタ
テーブルエン ト リにブレークポイン ト を設定した場合と同様になり ます。 ただし、ベク タキャ ッチはプロセッサの専用ハード ウェアを使用し、 貴重なブレークポイント リ ソースを使い切るこ とはあ り ません。 これをベクタキャ ッチと呼びます。 ベクタ
キャ ッチは、 [Breakpoints] 表示メニューから [Manage Signals] を選択するか、
handle コマンドを使用して、 デバッガで管理できます。 また、 info signals コマンドを
使用して、 ハンド ラの現在の設定を表示するこ と もできます。
使用可能なベクタキャ ッチイベン トは、 接続しているプロセッサによって異なり ます。
図 4-9 例外ハンドラ設定の管理
4.15.1 例
例外が発生したと きに例外をキャ ッチして、 イベン ト を記録し、 アプ リ ケーシ ョ ンを停止するよ うデバッガで指定するには、 例外に基づく停止をネーブルする必要があ り ます。 以下の例では、 NON-SECURE_FIQ 例外が発生する と、 デバッガが停止し
てメ ッセージが出力されます。 その後で、 ハンド ラがある場合は、 それをステップ実
行または実行できます。
例 4-3 例外ハンドラのデバッグ
handle NON-SECURE_FIQ stop # NON-SECURE_FIQ 例外時の停止と出力を有効にする
例外が発生したと きに停止を伴わずにハンド ラを呼び出すには、 例外に基づく停止をディセーブルする必要があ り ます。
例 4-4 例外の無視
handle NON-SECURE_FIQ nostop # NON-SECURE_FIQ 例外時の停止を無効にする
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-32ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.15.2 関連項目
タスク
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ) .
• 共有ライブラ リのデバッグについて (6-12 ページ)
• Unix シグナルの処理 (4-30 ページ) .
概念
• ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Commands] ビュー (10-20 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• [Manage Signals] ダイアログボッ クス (10-77 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— handle (2-79 ページ)
— info signals, info handle (2-107 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-33ID 0 5 1 5 1 2 Non-Confidential
実行制御
4.16 デバッガパスの代入規則の設定
以下の理由でデバッグ情報がロード されている と、 デバッガはソースファ イルを見つけられない場合があ り ます。
• デバッグ情報で指定されたパスがワークステーシ ョ ンに存在しないか、 必要なソースファ イルを含んでいない。
• ソースファ イルのワークステーシ ョ ン上の場所が、 デバッグ情報を含んでいるイ メージと同じでない。 デバッガはデフォルトで、 このイ メージと同じパスを
使用しよ う と します。
そのため、 ソースコードを検索して表示するコマンドがデバッガによって実行される場合は、 デバッガによって使用される検索パスを編集する必要があ り ます。
検索パスを編集するには
1. [Path Substitution] ダイアログボッ クスを開きます。
• ソースファ イルが見つからない場合は、 警告が C/C++ エディ タに表示さ
れます。 [Set Path Substitution] をク リ ッ ク します。
• [Debug Control] ビューで、 ビューメニューから [Path Substitution] を選
択します。
図 4-10 [Path Substitution] ダイアログボックス
2. 代入規則を追加、 編集、 または複製するには、 [Path Substitution] ダイアログ
ボッ クスのツールバーアイコンをク リ ッ ク します。
a. [Image Path] にソースファ イルの元のパスを入力するか、 [Select...] をク
リ ッ ク してコンパイルパスを選択します。
b. [Host Path] フ ィールドにソースファ イルの現在の場所を入力するか、 以
下のいずれかをク リ ッ ク します。
• [File System...] (外部フォルダに含まれているソースファ イルを検索
する場合)
• [Workspace...] (ワークスペースプロジェク トに含まれているソース
ファ イルを検索する場合)
c. [OK] をク リ ッ ク します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-34ID 0 5 1 5 1 2 Non-Confidential
実行制御
図 4-11 [Edit Substitute Path] ダイアログボックス
3. 必要な場合は、 [Path Substitution] ダイアログボッ クスのツールバーアイコンを
使用して、 代替規則の順序を変更した り、 不要になった規則を削除たりすること もできます。
4. [OK] をク リ ッ ク します。 これによって、 代替規則がデバッガに渡され、 ダイ
アログボッ クスが閉じます。
4.16.1 関連項目
タスク
• デバッガへのデバッグ情報のロードについて (4-4 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照
• C/C++ エディ タ (10-14 ページ)
• [Debug Control] ビュー (10-23 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set substitute-path (2-172 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 4-35ID 0 5 1 5 1 2 Non-Confidential
第 5 章 ターゲッ トの検査
以下の各ト ピッ クでは、 レジスタ、 変数、 メモ リ、 およびコールスタ ッ クを検査する方法について説明します。
タスク • ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ) .
概念 • ト レースサポートについて (5-7 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-1ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
5.1 ターゲッ ト実行環境の検査
デバッグセッシ ョ ン時に、 レジスタまたは変数の値、 シンボルのアドレス、 変数のデータ型、 メモ リの内容の表示が必要になる場合があ り ます。
DS-5 デバッグパースペクティブには、 現在の値を示す基本的なデバッガビューが用
意されています。 すべてのビューはアクティブな接続に関連付られており、 アプ リ
ケーシ ョ ンをステップ実行する と更新されます。 ビューをパースペクティブ内のさま
ざまな位置に移動するには、 タブをク ッ ク し、 別の位置にド ラ ッグします。 また、 タ
ブをダブルク リ ッ ク して、 ビューを 大化またはリセッ トするこ とで、 ビューの内容をよ り詳細分析するこ とができます。
図 5-1 ターゲッ ト実行の検査
デバッガコマンドを使用して、 必要な情報を表示するこ と もできます。 コマンド
ビューで、 個々のコマンドを実行した り、 スク リプ ト ファ イルを使用して一連のコマンドを実行した りするこ とができます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-2ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
5.1.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• ト レースポイン トの設定 (4-15 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ) .
概念 • ベアメ タル対称型マルチプロセスシステムのデバッグについて (6-7 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ)
• 共有ライブラ リのデバッグについて (6-12 ページ)
• Linux カーネルのデバッグについて (6-15 ページ)
• Linux カーネルモジュールのデバッグについて (6-17 ページ) .
参照
• [App Console] ビュー (10-3 ページ)
• [ARM Asm Info] ビュー (10-5 ページ)
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Expressions] ビュー (10-32 ページ)
• 関数ビュー (10-35 ページ)
• [History] ビュー (10-38 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Screen] ビュー (10-50 ページ)
• [Scripts] ビュー (10-53 ページ)
• [Target] ビュー (10-55 ページ)
• [Trace] ビュー (10-57 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— disassemble (2-64 ページ)
— info address (2-85 ページ)
— info functions (2-94 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-3ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
— info locals (2-97 ページ)
— info registers (2-104 ページ)
— info symbol (2-110 ページ)
— info variables (2-113 ページ)
— print, inspect (2-138 ページ)
— whatis (2-224 ページ)
— x (2-227 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-4ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
5.2 コールスタ ックの検査
コールスタ ッ ク、 つま り ランタイムスタ ッ クは、 関数の復帰情報と ローカル変数を保存するのに使用される メモ リの領域です。 各関数が呼び出される と、 レコードが
コールスタ ッ ク上に作成されます。 このレコードは一般にスタ ッ クフレームと呼ばれ
ます。
デバッガは実行パスに存在する関数の呼び出しシーケンスを表示できます。 これは、その呼び出しアドレスが引き続きコールスタ ッ クに存在してるためです。 ただし、 以
下のよ うな例外もあ り ます。
• 関数が実行を完了する と、 関連付けられているスタ ッ クフレームはコールスタ ッ クから削除され、 情報はデバッガで使用できなくな り ます。
• デバッグ情報がない関数がコールスタ ッ クに含まれている と、 デバッガでスタ ッ クフレームの呼び出しのバッ クアップを ト レースできない場合があ り ます。 したがって、 すべてのコードをデバッグ情報と と もにコンパイルして、 完
全なコールスタ ッ クを正し く表示する必要があ り ます。
マルチスレッ ドアプリ ケーシ ョ ンをデバッグする場合、 別個のコールスタ ッ クはスレッ ドごとに維持されます。
DS-5 デバッグパースペクティブのすべてのビューが現在のスタ ッ クフレームに関連
付けられ、 別のフレームを選択する と更新されます。 現在のスッ クフレームは太字で
示されます。
図 5-2 [Debug Control] ビュー
5.2.1 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• ト レースポイン トの設定 (4-15 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-5ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
概念 • ベアメ タル対称型マルチプロセスシステムのデバッグについて (6-7 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ)
• 共有ライブラ リのデバッグについて (6-12 ページ)
• Linux カーネルのデバッグについて (6-15 ページ)
• Linux カーネルモジュールのデバッグについて (6-17 ページ) .
参照
• [App Console] ビュー (10-3 ページ)
• [ARM Asm Info] ビュー (10-5 ページ)
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Expressions] ビュー (10-32 ページ)
• 関数ビュー (10-35 ページ)
• [History] ビュー (10-38 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Screen] ビュー (10-50 ページ)
• [Scripts] ビュー (10-53 ページ)
• [Target] ビュー (10-55 ページ)
• [Trace] ビュー (10-57 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— down (2-66 ページ)
— down-silently (2-67 ページ)
— frame (2-78 ページ)
— info frame (2-93 ページ)
— info registers (2-104 ページ)
— info stack, backtrace, where (2-109 ページ)
— select-frame (2-150 ページ)
— set backtrace (2-154 ページ)
— up (2-219 ページ)
— up-silently (2-220 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-6ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
5.3 ト レースサポートについて
ARM® DS-5™ を使用する と、 アプ リ ケーシ ョ ンまたはシステムで ト レースを実行でき
ます。 ト レースは、 命令の以前の非侵襲型デバッグを リ アルタイムにキプチャする機
能です。 これは、 システムがフルスピードで実行されている間に問題を調査できる強
力なツールです。 これらの問題は断続的であ可能性があ り、 プロセッサの開始と停止
を要する従来のデバッグ手法では特定が困難です。 ト レースは、 潜在的なボ トルネッ
クを特定する場合、 アプ リ ケーシ ョ ンのパフォーマンス重視の部分を向上させる場合でも役立ちます。
デバッガでアプリ ケーシ ョ ンでの関数の実行を ト レースする前に、 以下のこ とを確認する必要があ り ます。
• デバッグハード ウェアエージェン トがあるこ と ( ト レースス ト リームへの接続がある ARM DSTREAM™ ユニッ ト など)
• デバッガがデバッグハード ウェアエージェン トに接続されているこ と
5.3.1 ト レースハードウェア
ト レースは通常、 プロセッサに接続されている外部ハード ウェアブロ ッ クによって提供されます。 これは、 Embedded Trace Macrocell™ (ETM™) または Program Trace Macrocell (PTM) と呼ばれ、 ARM アーキテクチャベースシステムのオプシ ョ ンの部
分です。 System-on-chip Designer は、 このブロ ッ クをシ リ コンから省いてコス ト削減
するこ とがあ り ます。 これらのブロ ッ クは、 プロセッサの動作を監視するので (ただ
し動作には影響は与えない)、 命令の実行とデータアセスを監視できます。
ト レースのキャプチャには 2 つの重要な問題があ り ます。 1 つ目は、 プロセッサク
ロ ッ ク速度が非常に高く、 ほんの数秒の操作でも数十億サイクが実行されるこ とです。 この情報量を参照するこ とは明らかに困難です。 2 つ目の関連する問題は、 新
のプロセッサでは、 サイ クルあた り 1 または複数の 64 ビッ トのキャ ッシュアクセス
が実行される可能性があるこ と と、 データアドレス とデータ値の両方を記録する場合に大きな帯域が必要になる可能性があるこ とです。 その問題が現れるこ とはよ くあ
るので、 数本のピンがチップ上に用意されており、 プロセッサをク ロ ッキグ可能なレート よ り大幅に低いレートでこれらの出力を切り替えるこ とができるこ とがあ ります。 ト レースポートの容量は簡単に超えてしまいます。 この後半の問題を解決する
には、 ト レースマク ロセルで情報を圧縮し、 必要な帯域幅を減らします。 ただし、 こ
れらの問題に対処する主な方法は、 選択した ト レース情報のみを収集するよ う トレースブロ ッ クを制御する方法です。 例えば、 データ値を記録しないで実行のみを ト
レースした り、 特定のペリ フェラルに対して、 または特定の関数の実行時に、 データアクセスのみを ト レースした りできます。
さ らに、 ト レース情報をオンチップメモ リバッファである Embedded Trace Buffer™
(ETB™) に格納するこ とは一般的です。 これは、 情報を高速かつオフチップで取得す
る問題を軽減しますが、 シ リ コンの面積の点で追加のコス トがかかり、 さ らにキャプチャできる ト レースの量が制限されます。
ETB は圧縮した ト レース情報を循環形式で保存し、 停止するまで継続して ト レース
情報をキャプチャします。 ETB のサイズはチップの実装によってな り ますが、 通常
は、 数千行のプログラム ト レースの保持には 8KB または 16KB のバッファで十分で
す。
プログラムが失敗した場合、 ト レースバッファが有効である と、 プログラム履歴の一部を表示できます。 このプログラム履歴を表示するこ とで、 プログラムを逆戻り し
て、 障害発生時点の前に何が発生したかを簡単に確認できます。 これは、 プロセッサ
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-7ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
の開始と停止を要する従来のデバッグ手法では特定が困難である断続的な障害やリアルタイムな障害の調査に特に役立ちます。 ト レースは実行されたものを正確に示す
ため、 ハード ウェア ト レースを使用する と これらの障害の特定に要する時間が大幅に短縮されます。
5.3.2 ト レース範囲
ト レース範囲によ り、 メモ リの リニア範囲にト レースのキャプチャを制限できます。 ト レース範囲には、 仮想メモ リに開始アドレス と終了アドレスがあ り、 このアドレス範囲内の実行がキャプチャされます。 ト レースの始点と終点とは異なり、 ト レース
範囲内で行われた関数呼び出しは、 関数呼び出しのターゲッ ト も指定したアドレス範囲内にある場合にのみ、 キャプチャされます。 有効にできる ト レース範囲の数は、
プロセッサのデバッグハード ウェアによって決ま り ます。
ト レース範囲が設定されていない場合は、 ト レースキャプチャはデフォルトで有効になっています。 ト レース範囲が設定されている場合、 ト レースキャプチャはデフォ
ルトで無効になっており、 定義された範囲内でのみ有効になり ます。
ト レースビューの [範囲] タブを使用して ト レース範囲を設定できます。 各範囲の開
始アドレス と終了アドレスには、 絶対アドレスまたは式 (関数の名前など) のいずれかを指定できます。 コンパイラを 適化する と、 メモ リ内のコードが、 関連する
ソースコードから再配置または 小化されるこ とに注意して ください。 これによっ
て、 コードが予期していないよ うにインクルード されたり、 ト レースキャプチャから除外されたりするこ とがあ り ます。
5.3.3 ト レースポイン ト
ト レースポイン トでは、 プログラムで ト レースがキャプチャされる位置を厳密に制御できます。 ト レースポイン トは、 非侵入型であ り、 システムで処理を停止させる必
要があ り ません。 設定できる ト レースポイン トの 大数は、 プロセッサのデバッグ
ハード ウェアによって決ま り ます。 以の種類のト レースポイン トが使用できます。
ト レースの起点 実行が選択したアドレスに達したと きに ト レースキャプチャを有
効にします。
ト レースの終点 実行が選択したアドレスに達したと きに ト レースキャプチャを無
効にします。
ト レースの ト リガポイン ト
ト レースビューで簡単に検索できるよ うに、 ト レースでこのポイン ト をマーク します。
ソースビューに ト レースポイン ト を設定するには、 余白を右ク リ ッ ク し、 [DS-5 ブレークポイン ト ] コンテキス ト メニューから選択します。 逆アセンブリ ビューに ト
レースポイン ト を設定するには、 命令を右ク リ ッ ク し、 コンテキス ト メニューから選択します。 ト レースポイン トはブレークポイン ト ビューに一覧表示されます。
ト レースの始点はト レースのキャプチャを有効にし、 ト レースの終点はト レースのキャプチャを無効にします。 ト レースポイン トはネス ト を考慮しません。 たとえば、
行で 2 つの ト レースの起点に達した後に、 2 つの ト レースの終点に達した場合、 初
の ト レースの終点 (2 番目ではない) 達する とすぐに ト レースは無効になり ます。 トレースの起点が設定されていない場合、 ト レースはデフォルトで常に有効になり ます。 ト レース起点が設定されている場合、 ト レースはデフォルトで無効にな り、 初
の ト レースの起点に達したと きにだけ有効にな り ます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-8ID 0 5 1 5 1 2 Non-Confidential
ターゲッ トの検査
ト レースの ト リガポイン ト を使用する と、 ト レースの関心のある位置をマークできるため、 後で ト レースビューで簡単に検索できます。 ビューメニューの [ ト リ ガパ
ケッ トの検出] オプシ ョ ンを選択して ト レースの ト リガポイン ト を特定します。 トレースの ト リガポイン トに達したと きにデバッガが停止するよ うに設定するには、ト レースビューの [プロパティ] タブの [ ト リ ガ時に停止] チェッ クボッ クスを使用します。 これを設定する と、 [ポス ト ト リ ガキャプチャのサイズ] フ ィールドを使
用して ト レースの ト リガポイン トの前後でキャプチャされる ト レースの量を設定できます。
注 ターゲッ トプラ ッ ト フォームによっては、 ト レースキャプチャデバイス
(ETB/DSTREAM) による ト レース ト リ ガポイン トの検出をサポート していないのも
あ り ます。
5.3.4 関連項目
参照
• [Trace] ビュー (10-57 ページ)
• [Export trace report] ダイアログボッ クス (10-68 ページ)
• ARM® DS-5™ ARM® DSTREAM™ ハードウェアの設定 :— DSTREAM ユニッ トの接続 ,
http://infocenter.arm.com/help/topic/com.arm.doc.dui0481-/I1004916.html.
概念 • ベアメ タル対称型マルチプロセスシステムのデバッグについて (6-7 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 5-9ID 0 5 1 5 1 2 Non-Confidential
第 6 章 組み込みシステムのデバッグ
以下の各ト ピッ クでは、 組み込みシステムのデバッグについて紹介します。
概念 • エンディアンについて (6-2 ページ)
• AHB バス と APB バスへのアクセスについて (6-3 ページ)
• 仮想メモ リ と物理メモ リについて (6-4 ページ)
• ハイパーバイザのデバッグについて (6-5 ページ)
• ベアメ タル対称型マルチプロセスシステムのデバッグについて (6-7 ページ)
• マルチスレッ ドアプ リ ケーシ ョ ンのデバッグについて (6-10 ページ)
• 共有ライブラ リのデバッグについて (6-12 ページ)
• Linux カーネルのデバッグについて (6-15 ページ)
• Linux カーネルモジュールのデバッグについて (6-17 ページ)
• TrustZone 対応ターゲッ トのデバッグについて (6-19 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-1ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.1 エンディアンについて
エンディアンという用語は、 個々にアドレス指定可能な量の順序を説明するために使用されます。 具体的には ARM アーキテクチャでのバイ ト とハフワードのこ とで
す。 エンディアンの代わりに、 バイ ト順序という用語を使用するこ と もあ り ます。
接続されているターゲッ トに画像がロード される場合、 デバッガは自動的にその画像のエンディアンを選択します。 それ以外の場合はターゲッ ト現在のエンディアンを選択します。 デバッガが競合を検出した場合は、 警告メ ッセージを生成します。
デフォルトのデバッガ設定を変更するには、 set endian コマンドを使用します。
6.1.1 関連項目
参照
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set endian (2-159 ページ)
— show endian (2-187 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-2ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.2 AHB バスと APB バスへのアクセスについて
ARM ベースのシステムでは、 バスを使用してプロセッサ、 メモ リおよびペリ フェラ
ルを接続します。 標準的なバスタイプの例には、 AMBA ハイパフォーマンスバス
(AHB) とアドバンス トペリ フェラルバス (APB) が含まれます。
システムによ り、 デバッグインタフェースから これらのバスにアクセスできる場合があ り ます。 この場合、 DS-5 デバッガはベアメ タルまたはカールデバッグを実行す
る際にこれらのバスへのアクセスを提供します。 デバッガ内では、 バスは追加のアド
レス空間と して公開されます。 これらのバスへのアクセスは、 プロセッサが実行中に
使用できます。
DS-5 デバッガのデバッグセッシ ョ ンで、 info memory コマンドを使用してどのバスが
使用できるのかを知るこ とができます。 このコマンドの出力のアドレス列と説明列
に、 各アドレス空間の意味とバッガのアクセス方法の説明があ り ます。
これらのバスに対しては、 AHB: と APB: のアドレス接頭辞を使用して、 デバッガのど
の場所でもアドレス と式を通常に入力するこ とができます。 たとえば、 デバッガが APB アドレス空間を提供する と仮定し、 次のコマンドを使用してアドレスゼロの内
容を出力できます。
x/1 APB:0x0
バスの正確な トポロジとデバッグインタフェースへの接続はシステムに依存します。 詳細については、 ハード ウェアの CoreSight 仕様を参照して下い。 通常、 これらのバ
スへのデバッグアクセスはプロセッサをバイパスするため、 プロセッサ自身でのメモ リマッピングやキャ ッシュは考慮しせん。 システム内の L2 キャ ッシュまたは L3 キャ ッシュなどのその他のキャ ッシュの前にバスにアクセスするか、 または後にアクセスするかなの実装に依存します。 デバッガは、 これらのバスにアクセスする と
き、 システムのキャ ッシュ間のコ ヒーレンシを確保しよ う とはしません。 しがって、このこ とを考慮して、 必要に応じて削除またはフラ ッシュ操作を手動で行うのはユーザの責任です。
たとえば、 プロセッサレベル 1 のキャ ッシュを有効にした画像をデバッグする と き
にキャ ッシュコ ヒーレンシを確保するには、 アプ リ ケーシ ョ ンードまたはデータを AHB アドレス空間を使用して変更する前に、 L1 キャ ッシュ部分を削除して無効にす
る必要があ り ます。 これによって、 キャシュ内で行われた変更が、 そのアドレス空間
に書き込まれる前にメモ リに書き出され、 プロセッサは、 実行の再開時に変更内容を正し く読み取るよ うにな り ます。
割り当てられていないアドレスへのアクセスが未定義でシステムに依存する場合、バスをロ ッ クアップする可能性があ り ます。 システム内で定義ずみの特定のアドレス
にのみアクセスするこ とをお勧めします。 memory コマンドを使用してデバッガ内のメ
モ リ領域を再定義し、 アクセス権を変更してアドレスを制御するこ とができます。 x コマンドに count オプシ ョ ンを付けて使用し、 読み出される メモ リ量を制限するこ と
ができます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-3ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.3 仮想メモリ と物理メモリについて
メモ リ管理ユニッ ト (MMU) を含むプロセッサは、 メモ リ を 2 つの方法 (仮想メモ
リ と物理メモ リ ) で表示できます。 仮想アドレスは MMU 内のアドレス変換前のアド
レで、 物理アドレスは変換後のアドレスです。 通常デバッガがメモ リにアクセスする
場合は仮想アドレスを使用します。 しかし MMU が無効になっいる場合は、 マッピン
グは一様で、 仮想アドレス と物理アドレスは同じものになり ます。 デバッガに物理ア
ドレスを使用させるには、 アドレス接頭辞 P: を付けます。 以下に例を示します。
P:0x8000P:0+main は main のア ド レ ス オ フ セ ッ ト の付いた物理ア ド レ ス を作成し ます。
プロセッサが TrustZone テク ノ ロジも追加で含む場合、 セキュアワールド と通常環境
にアクセスできます。 それぞれに独自で別々の仮想および物理ドレスマッピングが行われます。 この場合、 アドレス接頭辞 P: は使用できません。 その代わり、 通常環
境の物理アドレスには NP: を、 セキュアワールドの物理アドレスには SP: を使用する
必要があ り ます。
注 物理アドレスへのアクセスはすべての操作で有効になっているわけではあ り ません。 たとえば、 ARM ハード ウェアは物理アドレス経由でのブレーポイン トの設定はサ
ポート していません。
物理アドレス経由でメモ リにアクセスする場合は、 キャ ッシュはフラ ッシュできません。 このため、 メモ リ を物理アドレスで表示するか仮想アドレスで表示するかに
よって、 結果が異なる場合があ り ます (同じ メモ リ アドレスを処理する と仮定して)。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-4ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.4 ハイパーバイザのデバッグについて
仮想化拡張機能をサポート している ARM プロセッサには、 ハイパーバイザの下で複
数のゲス トオペレーティングシステムを実行する機能があ り ます。 ハイパーバイザ
は、 ゲス トオペレーティングシステム間を調停し、 ハード ウェアへのアクセスを制御するソフ ト ウェアです。
DS-5 デバッガには、 ベアメ タルハイパーバイザのデバッグのベーシッ クサポートが
用意されています。 仮想化拡張機能をサポート しているプロセッサと接続する と、 デ
バッガによって、 ハイパーバイザとゲス ト メモ リ を区別し、 ハイパーバイザモード時や特定のゲス トオペレーティングシステム内でのみ適用されるブレークポイン トを設定できます。
一般的にハイパーバイザは、 ハイパーバイザ自体の個別のアドレス空間だけでなく、各ゲス トオペレーティングシステムのアドレス空間も提供します。 特に情報が与えら
れない限り、 デバッガによるすべてのメモ リ アクセスは現在のコンテキス ト内で発生します。 ハイパーバイザモードで停止する と、 メモ リ アクセスではハイパーバイザ
のメモ リ空間が使用され、 ゲス トオペレーティングシステムで停止する と、 ゲス トオペレーティンシステムのアドレス空間が使用されます。 特定のアドレス空間へのア
クセスを強制するには、 ハイパーバイザについては、 接頭辞 H: を、 ゲス トオペレー
ティングシステムについては接頭辞 N: をアドレスの前に付ける 必要があ り ます。 ゲス トオペレーティングシステムのアドレス空間にアクセスできるのは、 そのゲス トオペレーティンシステムが現時点でハイパーバイザ内で実行するよ うにスケジュールされている場合だけです。 別のゲス トオペレーティングシステムを指定すこ とはで
きません。
同様に、 ハード ウェアブレークポイン ト と ソフ ト ウェアブレークポイン トは、 同じアドレス接頭辞を使用してハイパーバイザまたはゲス トオペレティングシステムで一致するよ うに設定できます。 アドレス接頭辞を使用しない場合、 ブレークポイン ト
は、 初に設定されたと きに 新となているアドレス空間に適用されます。 ソフ ト
ウェアブレークポイン トが、 ハイパーバイザとゲス トオペレーティングシステム間で共有されていメモ リ内で設定されている場合、 ブレークポイン トは誤ったモードから ヒ ッ トする可能性があ り ます。 その場合、 デバッガは停止理由と してブレークポイン ト を認識できない場合があ り ます。
ハード ウェアブレークポイン トについてのみ (ソフ ト ウェアブレークポイン トではない)、 特定のゲス トオペレーティングシステム内で一致するよ うにブレークポイント を追加設定できます。 この機能では、 特定のゲス トオペレーティングシステムが実
行されている と きに見分けるための、 アーキテクチャ上で定義されている仮想マシン ID (VMID) レジスタが使用されます。 ハイパーバイザは、 一意の VMID を各ゲス
トオペレーティングシステムに割り当て、 そのゲス トオぺレーティンシステムの実行時に VMID レジスタ内でこれを設定する役割を担います。 この機能を使用する場合
は、 ユーザがデバッグする各ゲス トオペレーテングシステムにどの VMID が関連付
けられているかを把握して下さい。 VMID を知っている と、 [Breakpoints] ビュー内
で、 または break-stop-on-vmid コマンドを使用してこの VMID にブレークポイン ト を
適用できます。
複数のゲス トオペレーティングシステムが実行されているシステムをデバッグする場合は、 set print current-vmid 設定を有効にして、 デバッガが停止し、 現在の VMID が変更されたと きにコンソールで通知を受け取るこ と もできます。 また、 $vmid デバッガ変数を使用して DS-5 スク リプ ト内で VMID を取得できます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-5ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.4.1 関連項目
参照
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 式の使用 (2-4 ページ)
— break-stop-on-vmid (2-46 ページ)
— set print (2-164 ページ)
— show print (2-191 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-6ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.5 ベアメ タル対称型マルチプロセスシステムのデバッグについて
DS-5 デバッガでは、 ベアメ タル対称型マルチプロセス (SMP) システムのデバッグ
をサポート しています。 デバッガでは、 SMP システムが以下の要件を満たしている
こ とを想定しています。
• すべてのプロセッサ上で動作する同じ ELF イ メージ。
• すべてのプロセッサに同じデバッグハード ウェアがある必要があ り ます。 例え
ば、 ハード ウェアブレークポイン ト と ウォ ッチポイン ト リ ソースの数は同じでなければなり ません。
• ブレークポイン ト と ウォ ッチポイン トは、 すべてのプロセッサが、 物理メモ リと仮想メモ リの両方でメモ リマップが同じである領域のみで設定する必要があり ます。 ARM マルチコアプロセッサのプライベートペリ フェラルの場合、 同じ
アドレスでマッピングされる同じペリ フェラルの別のインスタンスを持つプロセッサは、 この要件を満たしている と見なされます。
6.5.1 設定と接続
デバッガで SMP サポート を有効にするには、 初に [Debug Configurations] ダイア
ログボッ クスでデバッグセッシ ョ ンを設定する必要があ り ます。 SMP バッグをサ
ポートするターゲッ トは、 SMP を [Debug operation] ド ロ ップダウン リ ス トで指定す
るこ とによって識別されます。
デバッガで SMP サポート を有効にするために必要なこ とは、単一の SMP 接続の設定
だけです。 接続時にシステム内のすべての SMP プロセッサをデバッグするには、 デ
バッグ制御ビューで選択します。
6.5.2 イメージとシンボルのロード
SMP システムのデバッグ時は、 イ メージとシンボルのロード操作がすべての SMP プロセッサに適用されます。 イ メージのロードの場合、 これは、 いずれかのプロセッサ
を介してイ メージのコード とデータがメモ リに 1 回書き込まれ、 同じアドレスの他
のプロセッサを介してアクセス可能である見なされるこ とを意味します。 これは同じ メモ リ を共有するためです。 シンボルのロードの場合、 これは、 デバッグ情報は 1 回ロード され、 いれかのプロセッサのデバッグ時に使用可能であるこ とを意味します。
6.5.3 実行、 停止、 およびステップ実行
SMP システムのデバッグ時は、 1 つのプロセッサを実行しよ う とする と、 システム
内の他のすべてのプロセッサが自動的に実行されます。 同様に、 プロセッサが停止す
る と (停止を要求したか、 またはブレークポイン トに到達するなどのイベン トによって)、 システム内のすべてのプロセッサ停止します。
命令レベルのシングルステップ実行 (stepi および nexti コマンド) の場合、 現在選
択されているプロセッサは 1 つの命令をステップ実行します。 例外は、nexti 操作が関
数呼び出しをステップオーバーする必要がある場合です。 この場合、 デバッガはブレークポイン ト を設定してから、 すべてのプロセッサを実行します。 他のすべてのス
テップ実行コマンドは、 すべてのプロセッサに影響を及ぼします。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-7ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
システムによっては、 実行中または停止中のプロセッサと、 実行中または停止中の別のプロセッサの間に遅延がある可能性があ り ます。 デバッガでは手動ですべてのプ
ロセッサを個別に実行または停止する必要があるので、 この遅延は非常に大き くなる可能性があ り ます。
めったにあ り ませんが、 1 つのプロセッサが停止し、 そのために他のプロセッサが停
止できな くなるこ とがあ り ます。 例えば、 これは、 セキュアードでコードを実行して
いるプロセッサが一時的にデバッグ機能を無効にしたと きに発生するこ とがあ り ます。 これが発生する と、 デバッグ制ビューに各プロセッサの個々の状態 (実行中また
は停止) が表示されるので、 停止できなかったプロセッサを確認できます。 すべての
プロセッが停止するまで、 後続の実行およびステップ実行操作を正常に動作できない場合があ り ます。
6.5.4 ブレークポイン ト、 ウォ ッチポイン ト、 およびシグナル
デフォルトでは、 SMP システムのデバッグ時は、 ブレークポイン ト、 ウォ ッチポイ
ン ト 、 およびシグナル (ベクタキャ ッチ) 操作がすべてのプロセッサに適用されます。 これは、 条件を満たすコードをいずれかのプロセッサが実行する と きに 1 つのブ
レークポイン ト を ト リガするよ う設定できるこ とを意味します。 デバッガがブレーク
ポイン ト、 ウォ ッチポイン ト、 またはシグナルのために停止したと きは、 イベン トを発生させたプロセッサがコマンドビューに表示されます。
関連する [Properties] ダイアログボッ クスで必要なプロセッサを選択するこ とに
よって、 1 つまたは複数のプロセッサについてブレークポイン ト まはウォ ッチポイン
ト を設定できます。 あるいは、 break-stop-on-cores コマンドを使用するこ と もできま
す。 こ この機能はシグナルには使用できません。
6.5.5 ターゲッ トの状態の検査
レジスタ、 コールスタ ッ ク、 メモ リ、 逆アセンブ リ、 式、 変数などターゲッ ト状態のビューには、 プロセッサ固有の内容が含まれています。
ブレークポイン ト 、 信号、 コマンドなどのビューは、 SMP システム内のすべてのプ
ロセッサで共有され、 プロセッサが現在選択されているかど うかに関係なく、 同じ内容を表示します。
6.5.6 ト レース
ト レースのサポート を有効にする接続を使用している場合は、 システム内の各プロセッサの ト レースを表示できます。 デフォルトでは、 ト レースビューには、 デバッグ
制御ビューで現在選択されているプロセッサの ト レースが表示されます。 あるいは、
ト レースビューの [Linked: context] ツールバーオプシ ョ ンを使用するこ とで、 その
ト レースビューを特定のプロセッサにリ ンクするこ とを選択できます。 特定のプロ
セッサにリ ンク される複数のト レースビューを作成する と、 複数のプロセッサからト レースを同時に表示できるよ うにな り ます。 ト レースビューのインデッ クスは、 別
のプロセッサと同時に同じポイン ト を表している とは限り ません。
6.5.7 関連項目
タスク • 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-8ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ)
• ト レースサポートについて (5-7 ページ)
• マルチスレッ ドアプリ ケーシ ョ ンのデバッグについて (6-10 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— info cores (2-91 ページ)
— info threads (2-112 ページ)
— thread, core (2-215 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-9ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.6 マルチスレッ ドアプリケーシ ョ ンのデバッグについて
デバッガはデバッガ変数 $thread を使用して現在のスレッ ドを追跡します。 print コマ
ンドまたは式でこの変数を使用できます。 スレッ ドは、 デバッガによって使用される
固有の ID とオペレーティングシステム (OS) の固有の ID と と もにデバッグ制御
ビューに表示されます。 :
Thread 1086 #1 stopped (PID 1086)
こ こで、 #1 はデバッガによって使用される固有の ID で、 PID 1086 は OS の ID です。
別個のコールスタ ッ クはスレッ ドごとに維持され、 選択されたスタ ッ クフレームは太字で示されます。 DS-5 デバッグパースペクティブのすべてのューは選択されたス
タ ッ クフレームに関連付けられ、 別のフレームを選択する と更新されます。
図 6-1 デバッグ制御ビューのコールスタ ックのスレッ ド
6.6.1 関連項目
タスク • 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ) .
概念 • ベアメ タル対称型マルチプロセスシステムのデバッグについて (6-7 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-10ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— info threads (2-112 ページ)
— thread, core (2-215 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-11ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.7 共有ライブラリのデバッグについて
共有ライブラ リ を使用する と、 アプ リ ケーシ ョ ンの一部を実行時に動的にロードできるよ うにな り ます。 ターゲッ ト上の共有ライブラ リがホス ト上の共有ライブラ リ と
同じであるこ とを確認して下さい。 コードレイアウ トは同一でなければなり ません
が、 ターゲッ ト上の共有ライブラ リはデバッグ情報を必要と しません。
共有ライブラ リに標準の実行ブレークポイン ト を設定できますが、 設定できるのは、アプリ ケーシ ョ ンによってロード され、 デバッグ情報がデバッガにロード された後です。 ただし、 ブレークポイン ト を保留にすれば、 アプリ ケーシ ョ ンによってロード
する前に、 共有ライブラ リに実行ブレークポイン ト を設定できます。
新しい共有ライブラ リ をロードする と、 デバッガはすべての保留ブレークポイン トを再評価し、 解決可能なアドレスを持つ保留ブレークポイン ト標準実行ブレークポイン ト と して設定されます。 未解決のアドレスは保留ブレークポイン トのまま残り ま
す。
ラ イブラ リがアプリ ケーシ ョ ンによってアンロード される と、 デバッガは共有ライブラ リ内のブレークポイン ト を自動的に保留ブレークポイン トに変更します。
[Debug Configurations] ダイアログボッ クスの共有ライブラ リ をロードできます。 ライブラ リ ファ イルが 1 つの場合、 [Files] タブの [Load symbols from file] オプシ ョ
ンを使用できます。
図 6-2 個別共有ライブラリファイルの追加
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-12ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
あるいは、 複数のライブラ リ ファ イルがある場合は、 共有ライブラ リ を検索する ときに、 デバッガによ り使用される検索パスを変更する と よ り効が良くなる場合があり ます。 これを行うには、 [Debugger] タブの [Paths] パネルの [Shared library search directory] オプシ ョ ンを使用します。
図 6-3 共有ライブラリの検索パスの変更
[Debug Configurations] ダイアログボッ クスのオプシ ョ ンの詳細については、 ダイナ
ミ ッ クヘルプを使用して下さい。
6.7.1 関連項目
タ ス ク
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• Unix シグナルの処理 (4-30 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-13ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : DS-5 ス タ ー ト ガ イ ド』 :
— Gnometris のデバッグ (3-21 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念 • ブレークポイン ト と ウォ ッチポイン トについて (4-7 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— add-symbol-file (2-32 ページ)
— info sharedlibrary (2-106 ページ)
— nosharedlibrary (2-135 ページ)
— set auto-solib-add (2-153 ページ)
— set solib-search-path (2-169 ページ)
— set stop-on-solib-events (2-171 ページ)
— set sysroot, set solib-absolute-prefix (2-173 ページ)
— sharedlibrary (2-176 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-14ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.8 Linux カーネルのデバッグについて
DS-5 は、 Linux カーネルのソースレベルのデバッグをサポート しています。 Linux カーネル (および関連するデバイス ド ラ イバ) は標準の ELF 形式の行可能ファ イル
と同じ方法でデバッグできます。 例えば、 ブレークポイン ト をカーネルコードに設定
し、 ソースをステップ実行し、 コールスタクを確認して、 変数を観察できます。
注 現在マップされていないユーザ空間パラ メータ (__user とマーク されている) をデ
バッガが読み出すこ とはできません。
カーネルをデバッグするには
1. 以下のオプシ ョ ンを使用して、 カーネルソースをコンパイルします。
• CONFIG_DEBUG_KERNEL=y
• CONFIG_DEBUG_INFO=y
• 実行するデバッグのタイプによっては、 他のオプシ ョ ンが必要になるこ とがあ り ます。
カーネルソースをコンパイルする と、 デバッグ情報を含む Linux カーネルイ
メージとシンボルファ イルが生成されます。
注 Linux カーネルは常に完全な 適化でコンパイルされ、 インライン化が有効に
なっているので、 以下のこ とに注意して下さい。
• コードをステップ実行する と、 一部の命令が並べ替えられている可能性があるため、 予想どおりに動作しないこ とがあ り ます。
• 一部の変数がコンパイラによって 適化されて取り除かれる場合があるので、 デバッガで使用できません。
2. Linux カーネルをターゲッ トにロード します。
3. カーネルのデバッグ情報をデバッガにロード します。
4. 必要に応じて、 カーネルをデバッグします。
6.8.1 関連項目
タスク • Linux カーネルへの接続の設定 (3-9 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-15ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— ロード可能なカーネルモジュールのデバッグ (3-23 ページ) .
概念 • Linux カーネルモジュールのデバッグについて (6-17 ページ)
• ARM Linux の問題と解決法 (11-2 ページ)
• ターゲッ ト接続の問題と解決法 (11-4 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— break (2-39 ページ)
— break-stop-on-threads、 break-stop-on-cores (2-44 ページ)
— info threads (2-112 ページ)
— thread, core (2-215 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-16ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.9 Linux カーネルモジュールのデバッグについて
Linux カーネルモジュールには、 カーネルの機能を拡張する方法が用意されており、
通常はデバイスやファ イルシステムド ラ イバなどに使用されます。 モジュールはカー
ネル内に組み込むか、 またはロード可能なモジュールと してコンパイルするこ とができます。 その後は、 カーネルを頻繁にコンパイルしな くても、 開発時に実行中のカーネルからダイナミ ッ クに挿入および削除できます。 ただし、 モジュールによって
はカーネルに組込む必要があ り、 ダイナミ ッ クなロードに適さないものがあ り ます。 組み込みモジュールの例と しては、 カーネルのブート時に必要であ り、 ル ト ファ イルシステムを取り付ける前に使用可能でなければならないものがあ り ます。
デバッグ情報がデバッガにロード されていれば、 ソースレベルのブレークポイン トをモジュールに設定できます。 カーネルにモジュールを挿入する前にモジュールにブ
レークポイン ト を設定しよ う とする と、 ブレークポイン トが保留されます。
モジュールをデバッグする と きは、 ターゲッ ト上のモジュールとホス ト上のモジュールが同じであるこ とを確認する必要があ り ます。 コードレイアウ トは同じでな
ければなり ませんが、 ターゲッ ト上のモジュールにはデバッグ情報は不要です。
6.9.1 組み込みモジュール
カーネルに組み込まれているモジュールをデバッグする場合の手順は、 カーネル自体をデバッグする場合の手順と同じです。
1. カーネルをモジュールと と もにコンパイルします。
2. カーネルイ メージをターゲッ トにロード します。
3. 関連するカーネルイ メージとデバッグ情報をデバッガにロード します。
4. 他のカーネルコード と同じよ うにモジュールをデバッグします。
組み込み (静的リ ンク) モジュールは残りのカーネルコード と区別できません。 そのため、 info os-modules コマンドによって表示されず、 モジュールビューにも表示さ
れません。
6.9.2 ロード可能なモジュール
ロード可能なカーネルモジュールをデバッグする手順はよ り複雑です。 Linux ターミ
ナルシェルから insmod および rmmod コマンドを使用して、 モジュールの挿入および削
除を行う こ とができます。 カーネルと ロード可能なモジュールの両方のデバッグ情報
をデバッにロードする必要があ り ます。 モジュールを挿入および削除する と、 デバッ
ガはデバッグ情報と既存のブレークポイン トのメモ リ位置を自動的解決します。 これ
を行う場合、 デバッガはカーネル内の呼び出しをインターセプ ト して、 モジュールを挿入または削除します。 これによ り、 アシ ョ ンのたびにわずかな遅延が発生し、 そ
の間デバッガはカーネルを停止してさまざまなデータ構造を調べます。 ロード可能な
カーネルモジュルのデバッグの詳細については、 『DS-5 スタートガイ ド』 のチュート
リ アルを参照して下さい。
注 ロード可能なモジュールを検出するには、 デバッガ内で接続が確立しており、 オペ
レーティングシステム (OS) サポートが有効になっている必要があ り ます。 Linux カーネルイ メージがデバッガにロード される と、 OS サポートは自動的に有効になり
ます ただし、 set os コマンドを使用して手動でこれを制御するこ と もできます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-17ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.9.3 関連項目
タスク
• Linux カーネルへの接続の設定 (3-9 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— ロード可能なカーネルモジュールのデバッグ (3-23 ページ) .
概念 • Linux カーネルのデバッグについて (6-15 ページ) .
参照
• [Breakpoints] ビュー (10-9 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— info os-log (2-100 ページ)
— info os-modules (2-101 ページ)
— info os-version (2-102 ページ)
— info processes (2-103 ページ)
— set os (2-162 ページ)
— show os (2-190 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-18ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
6.10 TrustZone 対応ターゲッ トのデバッグについて
ARM TrustZone® は、複数の ARM プロセッサに組み込まれているセキュ リ ティ技術で
す。 例えば、 Cortex™-A ク ラスプロセッサが該当します。 メモ リや周辺機器などの実
行と リ ソースをセキュアワールド と通常環境に分割します。
TrustZone をサポートするターゲッ トに接続する と きに、 セキュアワールドへのアク
セスが許可されている場合、 デバッガはセキュアワールド と通常環境の両方へのアクセスを提供します。 この場合、 すべてのアドレスおよびアドレスに関連する操作
は、 1 つの世界に固有のものです。 つま り、 ド レスまたは式が必要なコマンドを使用
する場合は、 適用先の環境も指定する必要があ り ます。 : S:0x1000
各パラ メータには以下の意味があ り ます。
N: 通常環境メモ リのアドレスの場合
S: セキュアワールド メモ リのアドレスの場合
現在の環境でアドレスを指定する場合は、 接頭辞を省略できます。
イ メージおよびデバッグ情報をロードする場合、 これらを適切な環境にロードするこ とが重要です。 デバッグランチャパネルでは、 画像およびデバッグ情報のアドレス
環境を直接指定するこ とはできません。 そのため、 これを行うには代わりにスク リプ ト コマンドを使用する必要があ り ます。 デバッガランチャパネルの [Debugger]タブには、 デバッグ初期化スク リプ ト 、 または接続時に任意のデバッガコマンドのセッ ト を実行するオプシ ョ ンが用意されています。 コマンド例には以下のものがあ り
ます。
• イ メージのみを通常環境にロードする (イ メージ内のアドレスにゼロオフセット を適用)
load myimage.axf N:0
• デバッグ情報のみをセキュアワールドにロードする (デバッグ情報内のアドレスにゼロオフセッ ト を適用)
file myimage.axf S:0
• イ メージおよびデバッグ情報をセキュアワールドにロードする (アドレスにゼロオフセッ ト を適用)
loadfile myimage.axf S:0
デバッグシンボルのロードやブレークポイン トの設定といった操作を通常環境およびセキュアワールドの両方に適用する必要がある場合は、 通常境に 1 回、 セキュア
ワールドに 1 回、 合計 2 回の操作を実行する必要があ り ます。
$PC などのレジスタに環境はあ り ません。 現在の環境にはないレジスタ内のアドレス
から メモ リの内容にアクセスするには、 N:0+$PC とい う式を使用できます。 一般に、 デ
バッグ情報を含む式はロード される と きに環境に関連付けられるため、 これらの式に必要あ り ません。
6.10.1 関連項目
参照 • [Breakpoints] ビュー (10-9 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— add-symbol-file (2-32 ページ)
— file, symbol-file (2-75 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-19ID 0 5 1 5 1 2 Non-Confidential
組み込みシステムのデバッグ
— load (2-119 ページ)
— loadfile (2-120 ページ) .• TrustZone テク ノ ロジを使用してセキュアシステムを構築する ARM セキュ リ
ティ技術 , http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/index.html
• テクニカルリ ファレンスマニュアル , http://infocenter.arm.com/help/topic/com.arm.doc.set.cortexa/
• 『アーキテクチャ リ ファレンスマニュアル』 , http://infocenter.arm.com/help/topic/com.arm.doc.set.architecture/
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 6-20ID 0 5 1 5 1 2 Non-Confidential
第 7 章 スクリプ ト を使用したデバッグ
以下の各ト ピッ クでは、 デバッガコマンドを含むスク リプ ト を使用して、 デバッグ操作を自動化できるよ うにする方法について説明します。
タスク • デバッグセッシ ョ ンで生成された DS-5 デバッガコマンドのエクスポート
(7-2 ページ)
• DS-5 デバッガスク リプ トの作成 (7-3 ページ)
• Jython スク リプ トの作成 (7-4 ページ)
• CMM スタイルのスク リプ トの作成 (7-7 ページ)
• スク リプ トの実行 (7-9 ページ)
• Eclipse での Jython プロジェク トの設定 (7-11 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-1ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.1 デバッグセッシ ョ ンで生成された DS-5 デバッガコマンドのエクスポート
必要に応じてすべてのツールバーアイコンおよびメニューオプシ ョ ンを使用して、デバッグセッシ ョ ンを実行できます。 現在のデバッグセッシ ョ ン時に生成されるすべ
ての DS-5 デバッガコマンドの一覧は [History] ビューに記録されます。 Eclipse を閉
じる前に、 スク リプ ト ファ イルに必要なコマンドを選択し、 [Export the selected lines as a script file] をク リ ッ ク して、 ファ イルに保存できます。
図 7-1 デバッグセッシ ョ ンで生成されたコマンド
7.1.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スク リプ トの実行 (7-9 ページ) .
参照
• [Commands] ビュー (10-20 ページ)
• [History] ビュー (10-38 ページ)
• [Scripts] ビュー (10-53 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-2ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.2 DS-5 デバッガスクリプ トの作成
スク リプ ト ファ イルには、 1 行につき 1 つのコマンドのみを含める必要があ り ます。 必要に応じて、 各コマンドをコ メン トで識別するこ と もできます。 スク リプ トの種類
を区別するため、 .ds ファ イル拡張子を使用する必要があ り ます。
例 7-1 DS-5 デバッガスクリプ ト
# フ ァ イ ル名 : myScript.ds
# 初期化コ マ ン ド
load "struct_array.axf" # イ メ ージのロ ー ド
file "struct_array.axf" # シンボルのロ ー ド
break main # main() にブ レー ク ポ イ ン ト を設定
break *0x814C # ア ド レ ス 0x814C にブ レー ク ポ イ ン ト を設定
# ブ レー ク ポ イ ン ト まで実行し必要な値を出力
run # 実行中のデバイ ス を開始
wait 0.5s # 待機するか 0.5 秒後に タ イムア ウ ト
info stack # コ ールス タ ッ ク を表示
info registers # すべてのレジス タ の情報を表示
# 次のブ レー ク ポ イ ン ト まで続行し、 必要な値を出力
continue # 実行中のデバイ ス を続行
wait 0.5s # 待機するか 0.5 秒後に タ イムア ウ ト
info functions # すべての関数の情報を表示
info registers # すべてのレジス タ の情報を表示
x/3wx 0x8000 # 0x8000 (hex) か ら 3 ワー ド分の メ モ リ を表示
...
# シ ャ ッ ト ダ ウ ン コ マ ン ド
delete 1 # 番号 1 に割り当て られた ブ レー ク ポ イ ン ト を削除
delete 2 # 番号 2 に割り当て られた ブ レー ク ポ イ ン ト を削除
7.2.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スク リプ トの実行 (7-9 ページ) .
参照
• [Scripts] ビュー (10-53 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-3ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.3 Jython スクリプ トの作成
Jython は、 Java で実装された Python スク リプ ト言語です。 これによって、 コードの
データ型、 条件付き実行、 ループ、 および、 関数、 ク ラス、 モジールへの構成が包括的にサポート されるだけでな く、 標準的な Jython ラ イブラ リへのアクセスも可能
にな り ます。 Jython は、 よ り大きなスク リプや複雑なスク リプ ト を実行する場合に
適な言語です。
これらは、 デバッガの Jython スク リプ ト を作成するために必要な重要な概念です。
インポート デバッガモジュールには、 レジスタやメモ リ などにアクセスするため
の、 サービス と呼ばれるク ラス と共に、 DS-5 デバッガへの初期アクセ
スのたのデバッガク ラスが用意されています。 以下の例は、 一般に Jython スク リプ トの上位に置かれるモジュールインポートの完全なセッ
ト を示しています。
from arm_ds.debugger_v1 import Debuggerfrom arm_ds.debugger_v1 import DebugException
実行コンテキス ト
DS-5 デバッガの Jython インタフェースで実行するほとんどの操作には、
例外コンテキス トが必要です。 実行コンテキス トは、 ターゲッ ト システ
ム状態を表します。 デバッガでアクセス可能なプロセス、 スレッ ド、 プ
ロセッサごとに個別の実行コンテキス トが存在します。 例えば、 デバッ
ガラスのインスタンスから実行コンテキス ト を取得できます。
# 最初の実行コ ン テキス ト を取得debugger = Debugger()ec = debugger.getExecutionContext(0)
レジスタ デバッガの Jython インタフェースを使用して、 プロセッサレジスタ、 コ
プロセッサレジスタ、 および周辺レジスタにアクセスできます。 レジス
タアクセスするには、 その名前に関する情報が必要です。 名前は、 グラ
フ ィカルデバッガの [レジスタ] ビューから取得できます。 RegisterService 使用する と、 特定の実行コンテキス トでレジスタ値の読
み取り と書き込みを行う こ とができます。 以下に例を示します。
# 実行コ ン テキス ト ec か ら プ ロ グ ラ ム カ ウ ン タ (PC) を出力value = ec.getRegisterService().getValue('PC')print 'The PC is %s' %value
メモ リ デバッガの Jython インタフェースを使用してメモ リにアクセスできま
す。 アクセスするアドレス とバイ ト数を指定する必要があ り ます。 アド
レス とサイズは、 指定された実行コンテキス ト内で評価される式を含んでいる絶対値または文字列にするこ とができます。 以下に例を示しま
す。
# 実行コ ン テキス ト ec か ら ア ド レ ス 0x0 で 16 バイ ト を出力print ec.getMemoryService().read(0x0, 16)
DS コマンド
デバッガの Jython インタフェースを使用して、 任意の DS-5 コマンドを
実行できます。 これは、 必要な機能が Jython インタフェースでは直接提
供さていない場合に役立ちます。 実行コンテキス ト と、 実行するコマン
ドおよび引数を指定する必要があ り ます。 戻り値には、 戻り値には、 コ
マンからのテキス ト出力およびエラー (ある場合) が含まれます。 以下
に例を示します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-4ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
# DS-5 コ マ ン ド 'print $ENTRYPOINT' を実行し、 結果を出力print ec.executeDSCommand('print $ENTRYPOINT')
エラー処理
デバッガの Jython インタフェースのメ ソ ッ ドでは、 エラーが発生する
と、 DebugException がスローされます。 詳細を出力するために、 例外を
キャ ッチてエラーを処理できます。 以下に例を示します。
# DebugException をキ ャ ッ チ し、 エ ラ ー メ ッ セージを出力try:ec.getRegisterService().getValue('ThisRegisterDoesNotExist')
except DebugException, de:print "Caught DebugException: %s" % (de.getMessage())
スク リプ トの種類を区別するため、 .py ファ イル拡張子を使用する必要があ り ます。
例 7-2 Jython スクリプ ト
# フ ァ イ ル名 : myScript.py
import sys
from arm_ds.debugger_v1 import Debuggerfrom arm_ds.debugger_v1 import DebugException
# デバ ッ ガに ア ク セスするためのデバ ッ ガオ ブジ ェ ク トdebugger = Debugger()
# 初期化コ マ ン ドec = debugger.getExecutionContext(0)ec.getExecutionService().stop()ec.getExecutionService().waitForStop()# 実行コ ン テキス ト リ フ ァ レ ン スが古い場合ec = debugger.getExecutionContext(0)# ス ク リ プ ト引数で指定されている場合に イ メ ージを ロ ー ドif len(sys.argv) == 2:
image = sys.argv[1]ec.getImageService().loadImage(image)ec.getExecutionService().setExecutionAddressToEntryPoint()ec.getImageService().loadSymbols(image)
# 使用可能なすべての DS コ マ ン ドが使用でき るprint "Entry point: ",print ec.executeDSCommand("print $ENTRYPOINT")# 出力例 :
# エ ン ト リ ポ イ ン ト : $8 = 32768else:
pass # イ メ ージ と シンボルがロー ド される こ と を前提と する
# メ イ ン にテ ンポ ラ リ ブ レー ク ポ イ ン ト を設定し て再開
ec.getExecutionService().resumeTo("main") # こ の方法は ノ ン ブ ロ ッ クtry:
ec.getExecutionService().waitForStop(500) # 500ms 待機
except DebugException, e:if e.getErrorCode() == "JYI31": # "Wait for stop timed out" メ ッ セージの コ ー ド
print "Waiting timed out!"sys.exit()
else:
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-5ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
raise # 別のエ ラ ーの場合は例外を発生させるec = debugger.getExecutionContext(0)
def getRegisterValue(executionContext, name):""" レジス タ値を取得し、 符号なし 16 進数および符合付き整数と共に文字列を返し ます。
レジス タ の読み取り で問題が発生し た場合は、 文字列 "error" を返す可能性が
あ り ます。"""try:
value = executionContext.getRegisterService().getValue(name)# 戻り値は数値型のよ う に動作し、
# バイ ト の配列のよ う に ア ク セス可能 (例 : 'print value[:]')return "%s (%d)" % (str(value), int(value))
except DebugException, e:return "error"
# すべての実行コ ン テキス ト で コ ア レジス タ を出力for i in range(debugger.getExecutionContextCount()):
ec = debugger.getExecutionContext(i)# "Core::" で始ま る レジス タ名を フ ィ ル タcoreRegisterNames = filter(lambda name: name.startswith("Core::"),
ec.getRegisterService().getRegisterNames())# Jython 包括リ ス ト を使用し て、 これら のすべてのレジス タ の値を取得registerInfo = ["%s = %s" % (name, getRegisterValue(ec, name))
for name in coreRegisterNames]
registers = ", ".join(registerInfo[:3]) # 最初の 3 つのみprint "Identifier: %s, Registers: %s" % (ec.getIdentifier(), registers)
# 出力 :
# 識別子 : 1、 レジス タ : Core::R0 = 0x00000010 (16), Core::R1 = 0x00000000 (0), Core::R2 = 0x0000A4A4 (42148)# ...
7.3.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スク リプ トの実行 (7-9 ページ)
• Eclipse での Jython プロジェク トの設定 (7-11 ページ) .
参照
• [Scripts] ビュー (10-53 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-6ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.4 CMM スタイルのスクリプ トの作成
スク リプ ト ファ イルには、 1 行につき 1 つのコマンドのみを含める必要があ り ます。 必要に応じて、 各コマンドをコ メン トで識別するこ と もできます。 スク リプ トの種類
を区別するため、 .cmm または .t32 ファ イル拡張子を使用する必要があ り ます。
例 7-3 CMM 形式のスクリプ ト
// フ ァ イ ル名 : myScript.cmm
system.up ; タ ーゲ ッ ト およびデバイ スに接続
data.load.elf "hello.axf" ; イ メ ージおよびシンボルを ロー ド
// ブ レー ク ポ イ ン ト およびレジス タ の設定
break.set main /disable ; ブ レー ク ポ イ ン ト を設定し、 す ぐ に無効
break.set 0x8048 ; 指定のア ド レ スでブ レー ク ポ イ ン ト を設定
break.set 0x8060 ; 指定のア ド レ スでブ レー ク ポ イ ン ト を設定
register.set R0 15 ; レジス タ R0 を設定
register.set PC main ; PC レジス タ をシンボルア ド レ スに設定
...
break.enable main ; 指定のシンボルでブ レー ク ポ イ ン ト を有効化
// ブ レー ク ポ イ ン ト まで実行し、 必要な値を表示
go ; デバイ ス を実行開始
var.print "Value is: " myVar ; 文字列および変数値を表示
print %h r(R0) ; レジス タ R0 を 16 進数で表示
// ブ レー ク ポ イ ン ト まで実行し ス タ ッ ク を出力
go ; 次のブ レー ク ポ イ ン ト まで実行
var.frame /locals /caller ; すべての変数と関数の呼び出し元を表示
...
// シ ャ ッ ト ダ ウ ン コ マ ン ド
break.delete main ; main() のア ド レ スにある ブ レー ク ポ イ ン ト を削除
break.delete 0x8048 ; ア ド レ スのブ レー ク ポ イ ン ト を削除
break.delete 0x8060 ; 指定のア ド レ スのブ レー ク ポ イ ン ト を削除
system.down ; タ ーゲ ッ ト か ら切断
7.4.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スク リプ トの実行 (7-9 ページ) .
参照
• [Scripts] ビュー (10-53 ページ)
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト
(2-13 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-7ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド
— 第 3 章 デバッガによってサポート されている CMM 形式のコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-8ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.5 スクリプ トの実行
Eclipse からスク リプ ト を実行するには
1. Eclipse を起動します。
2. ターゲッ トへの接続を設定します。 DS-5 デバッガコンフ ィギュレーシ ョ ンに
は、 デバッガがターゲッ トに接続したらすぐにスク リプ ト ファ イルを行するオプシ ョ ンを含めるこ とができます。 これを行うには、 [DS-5 Debug configuration]ダイアログボッ クスの [Debugger] タブでスク リプ ト ファ イを選択します。
3. ターゲッ トに接続します。
4. デバッグセッシ ョ ンが進行している間にスク リプ ト ファ イルを実行するには
a. [Scripts] ビューをク リ ッ ク します。
b. 1 つまたは複数のスク リプ ト ファ イルを実行する順序でインポート しま
す。
c. 実行するスク リプ ト を選択します。
d. [Execute Selected Scripts] ツールバーアイコンをク リ ッ ク します。
図 7-2 [Scripts] ビュー
あるいは、 DS-5 デバッガの source コマンドを使用するこ と もできます。
7.5.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• デバッグセッシ ョ ンで生成された DS-5 デバッガコマンドのエクスポート
(7-2 ページ)
• Jython スク リプ トの作成 (7-4 ページ)
• DS-5 デバッガスク リプ トの作成 (7-3 ページ)
• CMM スタイルのスク リプ トの作成 (7-7 ページ)
• Eclipse での Jython プロジェク トの設定 (7-11 ページ) .
参照
• [Scripts] ビュー (10-53 ページ)
• 第 3 章 ターゲッ トの設定と接続
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-9ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— source (2-203 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-10ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
7.6 Eclipse での Jython プロジェク トの設定
Eclipse を使用して Jython スク リプ ト を作成または編集できます。 Eclipse for DS-5 は、
Jython に対してオート コンプ リート機能と組み込みのドキュ メンを提供します。
Jython プロジェク ト を設定するには、 以下の手順を実行します。
1. 新規プロジェク ト を作成します。
a. メ イン メニューから [ファ イル] → [新規] → [プロジェク ト ...] を選択
します。
b. [PyDev] グループを展開します。
c. [PyDev プロジェク ト ] を選択します。
d. [Next] をク リ ッ ク します。
図 7-3 PyDev プロジェク トウィザード
e. プロジェク トに適切な名前を入力します。
f. プロジェク トのタイプと して [Jython] を選択します。
g. インタープリ タ と して [DS-5 Jython] を選択します。
h. [終了] をク リ ッ ク してプロジェク ト を作成します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-11ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
図 7-4 PyDev プロジェク ト設定
i. 初めて PyDev プロジェク ト を作成する と、 Python インタープリ タが設定
されていないこ とを通知するダイアログボッ クスが表示されます。 しか
し、 Jython は設定されているのでこのメ ッセージは無視して構いません。 [次回から通知しない] をク リ ッ ク して続行します。
図 7-5 Python インタープリ タの警告ダイアログボックス
2. または、 Jython の既存のプロジェク ト を設定できます。
a. [プロジェク トエクスプローラ] ビュー内のプロジェク ト を右ク リ ッ ク して、 コンテキス ト メニューから [PyDev] → [PyDev プロジェク ト と して
設定] を選択します。
b. Python が設定されていないこ とを通知するダイアログボッ クスが表示され
たら、 [次回から通知しない] をク リ ッ ク します。
c. [Project] メニューから、 [Properties] を選択します。
d. [プロパティ] ダイアログボッ クスで [PyDev - インタープリ タ / グラ
マー] を選択します。
e. プロジェク トのタイプと して [Jython] を選択します。
f. インタープリ タ と して [DS-5 Jython] を選択します。
g. [OK] をク リ ッ ク してこれらの設定を適用し、 ダイアログボッ クスを閉
じます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-12ID 0 5 1 5 1 2 Non-Confidential
スクリプ ト を使用したデバッグ
3. プロジェク トに Python ソースファ イルを追加します。 スク リプ トの種類を区別
するため、 .py ファ イル拡張子を使用する必要があ り ます。
7.6.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• Jython スク リプ トの作成 (7-4 ページ)
• スク リプ トの実行 (7-9 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— 新しい C プロジェク ト または C++ プロジェク トの作成 (3-4 ページ)
— 既存の Eclipse プロジェク トのインポート (3-8 ページ)
— プロジェク トへの新しいソースファ イルの追加 (3-17 ページ) .
参照
• [Scripts] ビュー (10-53 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— 第 2 章 DS-5 デバッガコマンド .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 7-13ID 0 5 1 5 1 2 Non-Confidential
第 8 章 実行時メ ッセージの制御
以下の各ト ピッ クでは、 セ ミ ホスティングと実行時メ ッセージの制御方法について説明します。
タスク
• セ ミ ホスティングの使用 (8-4 ページ)
• デバッガでの自動セ ミ ホスティングサポートの有効化 (8-5 ページ)
• コマンド ラ インコンソールを使用したセ ミ ホスティングメ ッセージの制御(8-6 ページ)
• ログメ ッセージの出力の制御 (8-7 ページ)
• デバッガからのログメ ッセージの出力のカスタマイズ (8-9 ページ) .
概念 • セ ミ ホスティングと top of memory について (8-2 ページ)
• log4j コンフ ィギュレーシ ョ ンファ イルについて (8-8 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-1ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.1 セミホステ ィングと top of memory について
通常、 セ ミ ホスティングが使用されるのは、 C ラ イブラ リ を使用しながら、 オペ
レーティングシステムなしで実行されているアプ リ ケーシ ョ ンのバッグ時です。 これ
によ り、 printf() や scanf() などの C ライブラ リの関数で、 ターゲッ ト システム上の
画面やキーボードではな く、 ホス ト ワークステーシ ョ ン上の画面やキーボードが使用できよ うにな り ます。
セ ミ ホスティングでは、 スタ ッ クベース と ヒープベースアドレスを使用して、 スタ ッ クおよびヒープの場所とサイズを決定します。
スタ ッ クベース (top of memory と も呼ばれます) は、 デフォルトでヒープベースの
終点から 64K のアドレスです。
ヒープベースはデフォルトで連続するアプ リ ケーシ ョ ンコードです。
以下の図は、 ARM® ターゲッ トの標準的なレイアウ ト を示しています。
図 8-1 メモリ、 スタ ック、 ヒープ間の標準的なレイアウト
8.1.1 関連項目
タスク • セ ミ ホスティングの使用 (8-4 ページ)
• デバッガでの自動セミ ホスティングサポートの有効化 (8-5 ページ)
• コマンド ラインコンソールを使用したセ ミ ホスティングメ ッセージの制御(8-6 ページ) .
参照
• [App Console] ビュー (10-3 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
ZI
RW
RO+RW
0xFFFFFFFF
0x00000000
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-2ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set semihosting (2-166 ページ)
— show semihosting (2-192 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-3ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.2 セミホステ ィングの使用
セ ミ ホスティングは、 コマンド ラ インコンソールと Eclipse の両方のデバッガでサ
ポート されています。
コマンド ラインコンソール
デフォルトでは、 すべてのセ ミ ホスティングメ ッセージ (stdout および stderr) がコンソールに出力されます。 このコンソールをインタラ ク
ティブにデバッガコマンド と使用する場合は、 stdin コマンドを使用し
て、 入力メ ッセージ (stdin) をアプ リ ケーシ ョ ンに送信する必要があ り
ます。
あるいは、 コンソールのセ ミ ホスティングを無効にし、 別の Telnet セッ
シ ョ ンを使用してアプ リ ケーシ ョ ンと直接やり と り します。 起動時に、
デバッガはセ ミ ホスティングサーバソケッ ト を作成し、 Telnet セッシ ョ
ン時に使用するポート番号を表示します。
Eclipse DS-5 デバッグパースペクティブ内のアプリ ケーシ ョ ンコンソール
ビューは、 アプ リ ケーシ ョ ンコード とデバッガの間のすべてのセ ミ ホスティング出力要求 (stdin、 stdout、 および stderr) を制御します。
8.2.1 関連項目
タスク • デバッガでの自動セミ ホスティングサポートの有効化 (8-5 ページ)
• コマンド ラインコンソールを使用したセ ミ ホスティングメ ッセージの制御(8-6 ページ) .
概念 • セ ミ ホスティングと top of memory について (8-2 ページ) .
参照 • [App Console] ビュー (10-3 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set semihosting (2-166 ページ)
— show semihosting (2-192 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-4ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.3 デバッガでの自動セミホステ ィングサポートの有効化
デフォルトでは、 セ ミ ホスティングサポートはデバッガで有効になっていません。 ただし、 別関数に対するエイ リ アスを持つ C コードで、 特殊なセ ミ ホスティング関数
である __auto_semihosting(void) を作成できます。 これによ り、 デバッグ情報に必須シ
ンボルが配置されますが、 メ インのアプリ ケーシ ョ ンイ メージに必須シンボルは配置されせん。 デバッガがそのシンボルを検出する と、 ターゲッ トでサポート されてい
れば、 セ ミ ホスティング操作が自動的に有効化されます。
注 ARM コンパイラ 5.0 以降を使用してアプリ ケーシ ョ ンイ メージを作成する場合は、
特殊なセ ミ ホスティング関数を作成する必要はあ り ません。 必要に応じて、 リ ンカに
よってセ ミ ホスティングシンボルが自動的に追加されます。
例 8-1 別の関数へのエイリアスを使用した特殊なセミホステ ィング関数の作成
#include <stdio.h>void __auto_semihosting(void) __attribute__((alias("main")));
//main() のエ イ リ ア ス と し て マー ク し て宣言 // デバ ッ グ情報のみのセ ミ ホス テ ィ ン グシンボル
int main(void){
printf("Hello world\n");return 0;
}
8.3.1 関連項目
タスク • セ ミ ホスティングの使用 (8-4 ページ)
• コマンド ラインコンソールを使用したセ ミ ホスティングメ ッセージの制御(8-6 ページ) .
概念 • セ ミ ホスティングと top of memory について (8-2 ページ) .
参照 • [App Console] ビュー (10-3 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set semihosting (2-166 ページ)
— show semihosting (2-192 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-5ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.4 コマンド ラインコンソールを使用したセミホスティングメ ッセージの制御
アプリ ケーシ ョ ンコードからデバッガを実行するホス ト ワークステーシ ョ ンへの入出力要求を制御できます。 これらは 「セ ミ ホスティングメ ッセージ」 と呼ばれます。
デフォルトでは、 すべてのメ ッセージがコマンド ラ インコンソールに出力されますが、 以下のコマンドを使用するこ とでデバッガを起動する と き、 それらのメ ッセージを転送するよ う選択できます。
--disable_semihosting
すべてのセ ミ ホスティング操作を無効にします。
--disable_semihosting_console
デバッガコンソールに対するすべてのセ ミ ホスティング操作を無効にします。
--semihosting_error=filename
セ ミ ホスティング操作で stderr を書き込むファイルを指定します。
--semihosting_input=filename
セ ミ ホスティング操作で stdin を読み出すファイルを指定します。
--semihosting_output=filename
セ ミ ホスティング操作で stdout を書き込むファイルを指定します。
8.4.1 関連項目
タスク • セ ミ ホスティングの使用 (8-4 ページ) .
概念 • セ ミ ホスティングと top of memory について (8-2 ページ) .
参照 • コマンド ラインコンソールからのデバッガの起動 (2-7 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-6ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.5 ログメ ッセージの出力の制御
デバッガからのログメ ッセージを制御できます。 デフォルトでは、 すべてのメ ッセー
ジがコンソールビューに出力されますが、 以下の log config および log file デバッガ
コマンドを使用するこ とで、 ログ メ ッセージの出力および転送を制御できます。
log config=option
デバッガから実行時メ ッセージを出力するログコンフ ィギュレーシ ョ ンのタイプを指定します。
各パラ メータには以下の意味があ り ます。
option 定義済みのログコンフ ィギュレーシ ョ ンまたはユーザ定義の
ログコンフ ィギュレーシ ョ ンファ イルを指定します。
info 定義済みの INFO レベル設定を使用する出力メ ッ
セージ。 これがデフォルトです。
debug 定義済みの DEBUG レベル設定を使用する出力メ ッ
セージ。
filename メ ッセージの出力をカスタマイズするユーザ定義の
ログコンフ ィギュレーシ ョ ンファ イルを指定します。 デバッガは log4j コンフ ィギュレーシ ョ ファ イルをサ
ポート します。
log file=filename
コンソールだけでなく、 ファ イルへメ ッセージを出力します。
8.5.1 関連項目
タスク • デバッガからのログメ ッセージの出力のカスタマイズ (8-9 ページ) .
参照 • [Commands] ビュー (10-20 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— log config (2-122 ページ)
— log file (2-123 ページ) .
その他の情報 • Apache Web サイ トの log4j ログサービス , http://logging.apache.org
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-7ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.6 log4j コンフ ィギュレーシ ョ ンファイルについて
ほとんどのデバッグタスクは通常、 デバッガによって提供された定義済みのログコンフ ィギュレーシ ョ ンで十分です。 ただし、 よ り厳密に制御する場合は、 log4j コン
フ ィギュレーシ ョ ンファ イルを作成するこ とで、 カスタマイズされた独自のログコンフ ィギュレーシ ョ ンを指定できます。 log4j は Java プラ ッ ト フォームのオープン
ソースログシステムであ り、 デバッガは現在、 バージ ョ ン 1.2 を使用しています。
log4j はログレベルの階層を使用してレベルごとにメ ッセージを制御し、 下のレベル
をすべて継承します。 以下のログレベルは現在、 デバッガによってサポート されてい
ます。
• DEBUG• INFO• WARN• ERROR• FATAL
メ ッセージは特定のログレベルに割り当てられ、 1 つまたは複数の以下の log4j コン
ポーネン ト を使用してさまざまな出力場所に転送できます。
8.6.1 関連項目
タスク • ログメ ッセージの出力の制御 (8-7 ページ)
• デバッガからのログメ ッセージの出力のカスタマイズ (8-9 ページ) .
その他の情報 • Apache Web サイ トの log4j ログサービス , http://logging.apache.org
表 8-1 log4j コンポーネン ト
コンポーネン ト 説明
Logger ログのレベルを定義します。
Appender 出力先を定義します。
Layout メ ッセージの形式を定義します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-8ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.7 デバッガからのログメ ッセージの出力のカスタマイズ
カスタマイズされた log4j コンフ ィギュレーシ ョ ンファ イルを作成するには
1. 必須ログタイプの Appender インスタンスを作成します。 以下のタイプがサポー
ト されています。
• ConsoleAppender
• RollingFileAppender.
2. 必要に応じて、 Threshold ログレベルを抑制します。
3. Appender インスタンスをファ イルに出力する場合は、 Appender インスタンスのレ
イアウ ト を定義します。 以下のレイアウ トがサポート されています。
PatternLayout テキス ト形式
HTMLLayout HTML 形式
4. Appender インスタンスをファ イルに出力する場合は、 ファ イルコンポーネン ト
を定義します。 以下のコンポーネン トがサポート されています。
File ファ イル名
MaxFileSize long 整数または文字列 (10KB)。
MaxBackupIndex 使用するログファ イルの 大数。 デフォルトは 1 です。
5. レイアウ ト PatternLayout を使用する場合、 追加の ConversionPattern コンポーネ
ン ト を使用してメ ッセージの形式を拡張できます。 以下のパターンがサポート
されています。
%c ログカテゴ リ
%C ク ラス名
%d 日付
%F ファ イル名
%l 呼び出し元の場所
%L 行番号
%m ログメ ッセージ
%M メ ソ ッ ド名
%n 行末文字
%p ログレベル。 アライ メン トの場合、 文字数を指定するこ と もできます (%-5p など)。
%r 経過時間 (ミ リ秒)
%t スレッ ド名
6. 必要に応じて、 Appender インスタンスの name コンポーネン ト を定義します。
7. rootLogger のログレベルを定義し、 必須の Appender インスタンスに割り当てま
す。
8. log4j コンフ ィギュレーシ ョ ンファ イルをデバッガに渡す場合は、 以下のコマン
ドを使用できます。
• コマンド ラ インコンソールからデバッガを起動する場合は、--log_config=filename コマンド ラインオプシ ョ ン
• デバッガが既に実行されている場合は、log config filename デバッガコマン
ド
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-9ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
8.7.1 コンソールへのメ ッセージのログ方法を示す例
以下の例は、 コンソールへのメ ッセージのログ方法を示します。 この例では、 デフォ
ルトのログレベルを DEBUG に設定します。 この例のすべてのグはコンソールに出力
されます。 ただし、 エラーおよび警告のメ ッセージの出力はエラース ト リームに送信
され、 デバッグおよび情報メ ッセーは出力ス ト リームに送信されます。
例 8-2 コンソールへのメ ッセージのログ
# logConsole を ConsoleAppender に設定log4j.appender.logConsole=org.apache.log4j.ConsoleAppenderlog4j.appender.logConsole.layout=org.apache.log4j.PatternLayoutlog4j.appender.logConsole.layout.ConversionPattern=%m%nlog4j.appender.logConsole.name=Console
# すべての DEBUG レベルのロ グ を コ ン ソールに送信log4j.rootLogger=DEBUG, console
8.7.2 ファイルへのメ ッセージのログ方法を示す例
以下の例は、 ファ イルへのメ ッセージのログ方法を示します。 この例では、 デフォル
トのログレベルを DEBUG に設定します。 ただし、 一部のパッージは INFO レベルで
のみログを書き込みます。 この例のすべてのログはファイルに出力されます。 ファ イ
ルが 10MB に達する と、.1 ファ イル拡張子を追加して名前が変更され、元の名前で新
しいファ イルにログが引き続き書き込まれます。 これは何度も発生しますが、 保存さ
れるバッ クアップファ イルは 10 個だけです。
例 8-3 ファイルのメ ッセージのログ
# logFile を RollingFileAppender に設定log4j.appender.logFile=org.apache.log4j.RollingFileAppenderlog4j.appender.logFile.File=output.loglog4j.appender.logFile.MaxFileSize=10MBlog4j.appender.logFile.MaxBackupIndex=10log4j.appender.logFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logFile.layout.ConversionPattern=%d %-5p %t %c - %m%n
# すべての DEBUG レベルのロ グ を フ ァ イ ルに送信 : logFilelog4j.rootLogger=DEBUG, logFile
# デバ ッ グパ ッ ケージ内のすべての INFO レベルのロ グ を フ ァ イ ルに送信 : logFilelog4j.logger.com.arm.debug.logging=INFO, logFile
8.7.3 コンソールおよびファイルへのメ ッセージのログを組み合わせる方法を示す例
以下の例は、 前の例の組み合わせを示しています。 この例では、 デフォルトのログレ
ベルを INFO に設定します。 この例のすべての INFO レベルのグはコンソールに出力
されます。 ただし、 メ ッセージの選択も出力を 2 つのファ イルに送信します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-10ID 0 5 1 5 1 2 Non-Confidential
実行時メ ッセージの制御
例 8-4 ログメ ッセージの組み合わせ
# logConsole を ConsoleAppender に設定log4j.appender.logConsole=org.apache.log4j.ConsoleAppender# し きい値よ り低い コ ン ソールへのすべての ロ グ を抑制log4j.appender.logConsole.Threshold=INFOlog4j.appender.logConsole.layout=org.apache.log4j.PatternLayoutlog4j.appender.logConsole.layout.ConversionPattern=%m%nlog4j.appender.logConsole.name=Console
# logConnFile を RollingFileAppender に設定log4j.appender.logConnFile=org.apache.log4j.RollingFileAppender# し きい値よ り低い フ ァ イ ルへのすべてのロ グ を抑制log4j.appender.logConnFile.Threshold.DEBUGlog4j.appender.logConnFile.File=connection.loglog4j.appender.logConnFile.MaxFileSize=10MBlog4j.appender.logConnFile.MaxBackupIndex=10log4j.appender.logConnFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logConnFile.layout.ConversionPattern=%d %-5p %t %c - %m%n
# logTAccessFile を RollingFileAppender に設定log4j.appender.logTAccessFile=org.apache.log4j.RollingFileAppender# し きい値よ り低い フ ァ イ ルへのすべてのロ グ を抑制log4j.appender.logTAccessFile.Threshold.DEBUGlog4j.appender.logTAccessFile.File=target_acccess.loglog4j.appender.logTAccessFile.MaxFileSize=10MBlog4j.appender.logTAccessFile.MaxBackupIndex=10log4j.appender.logTAccessFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.logTAccessFile.layout.ConversionPattern=%d %-5p %t %c - %m%n
# すべての INFO ロ グ を コ ン ソールに送信log4j.rootLogger=INFO, logConsole
# 接続パ ッ ケージ内のすべての DEBUG ロ グ を フ ァ イ ルに送信 : logConnFilelog4j.logger.com.arm.debug.core.engine.connection=DEBUG, logConnFile
# タ ーゲ ッ ト ア ク セスパ ッ ケージ内のすべての DEBUG ロ グ を フ ァ イ ルに送信 : logTAccessFilelog4j.logger.com.arm.debug.core.targetaccess.rvi=DEBUG, logTAccessFile
8.7.4 関連項目
タスク • ログメ ッセージの出力の制御 (8-7 ページ) .
概念 • log4j コンフ ィギュレーシ ョ ンファ イルについて (8-8 ページ) .
参照 • [Commands] ビュー (10-20 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— log config (2-122 ページ)
— log file (2-123 ページ) .
その他の情報 • Apache Web サイ トの log4j ログサービス , http://logging.apache.org
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 8-11ID 0 5 1 5 1 2 Non-Confidential
第 9 章 スナップシ ョ ッ ト ビューアの使用
以下の各ト ピッ クでは、 スナップシ ョ ッ ト ビューアの使用方法について説明します。
タスク • スナップシ ョ ッ ト ビューアの初期化ファ イルの作成 (9-2 ページ)
• スナップシ ョ ッ ト ビューアへの接続 (9-8 ページ) .
概念
• スナップシ ョ ッ ト ビューアについて (9-5 ページ)
• スナップシ ョ ッ ト ビューアのデバッガスク リプ ト作成時の注意事項 (9-9 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-1ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.1 スナップシ ョ ッ ト ビューアの初期化ファイルの作成
スナップシ ョ ッ ト ビューアの初期化ファイルは、 元のシステムの状態をエミ ュレートする 1 つまたは複数のセクシ ョ ンから構成される単純なテキ ト ファ イルです。 各セ
クシ ョ ンは、 option=value 構造を使用します。
注 ファ イル拡張子と して .ini を使用する必要があ り ます。
9.1.1 前提条件
スナップシ ョ ッ ト ビューアの初期化ファイルを作成する前に、 以下のものが揃っているこ とを確認する必要があ り ます。
• 解析するアプリ ケーシ ョ ンのスナップシ ョ ッ ト を含む 1 つまたは複数のバイナ
リ ファ イル
注 以下の制限に従ってバイナリ ファ イルを正し く フォーマッ トする必要があ り ま
す。
• プロセッサの種類の詳細
• メモ リ領域アドレスおよびオフセッ ト値の詳細
• 新の既知のレジスタ値の詳細
9.1.2 手順
スナップシ ョ ッ ト ビューアの初期化ファイルを作成するには、 必要に応じて以下のリ ス トからグループ化したセクシ ョ ンを追加する必要があ り ます。
[global] グローバル設定のセクシ ョ ン。 以下のオプシ ョ ンを使用できます。
core 選択したプロセッサ (core=Cortex-M3 など)。
[dump] バイナリ ファ イルに格納された連続する メモ リ領域の 1 つまたは
複数のセクシ ョ ン。 以下のオプシ ョ ンを使用できます。
file バイナリ ファ イルの場所。
address 指定された領域のメモ リ開始アドレス。
length 領域の長さ。 何も指定しない場合、 デフォルトはオフ
セッ ト値から残りのファ イルです。
offset ファ イルの先頭から指定された領域のオフセッ ト。 指定
しない場合、 デフォルトはゼロです。
[regs] 標準の ARM® レジスタ名および値のセクシ ョ ン (R0=0x0 など)。
バンクレジスタは、 『ARM アーキテクチャ リ ファレンスマニュア
ル』 に記載されている名前 (R13_fiq など) を使用して明示的に指
定できます。 さ らに、 現在のモードはプログラムステータスレジ
スタ (PSR) から決定され、 モード接尾文字なしのレジスタ名だ
けで適切なバンクレジスタ と して認識されます。
PSR および PC レジスタの値は常に指定する必要があ り ます。 その
他のレジスタについては、 デバッガから読み出す場合のみ、 それらの値が必要にり ます。
例えば、 以下のよ うな場合です。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-2ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
[regs]CPSR=0x600000D2 ; IRQSP=0x8000R14_irq=0x1234
SP、 R13、 または R13_irq とい う名前のレジスタを読み出すと、
すべてが値 0x8000 を返します。
LR、 R14、 または R14_irq という名前のレジスタを読み出すと、
すべてが値 0x1234 を返します。
注 すべてのレジスタは 32 ビッ トです。
9.1.3 制限
以下の使用制限があ り ます。
• グローバルセクシ ョ ンが必要な場合は、 グローバルセクシ ョ ンをファ イル内の先頭に置く必要があ り ます。
• メモ リの連続したバイ トは、 1 つまたは複数のダンプファ イル内にも連続した
バイ ト と して現れる必要があ り ます。
• メモ リ領域を表すアドレス範囲は重複してはな り ません。
9.1.4 例
例 9-1 スナップシ ョ ッ ト ビューアの初期化ファイル
; すべてのセ ク シ ョ ンはオ プシ ョ ンです
[global]core=Cortex-M3 ; 選択されたプ ロセ ッ サ
; ダ ン プ フ ァ イ ルに格納された連続する メ モ リ領域の場所[dump]file="path/dumpfile1.bin" ; フ ァ イ ルの場所 (フ ルパス を指定する必要があ り ます)
address=0x8000 ; 特定の領域の メ モ リ開始ア ド レ ス
length=0x0090 ; 領域の長さ
; (オ プシ ョ ン、 デ フ ォ ル トはオ フ セ ッ ト か ら の残り の フ ァ イ ル)
; ダ ン プ フ ァ イ ルに格納された連続する メ モ リ領域の場所[dump]file="path/dumpfile2.bin" ; フ ァ イ ルの場所
address=0x8090 ; 特定の領域の メ モ リ開始ア ド レ ス
offset=0x0024 ; フ ァ イ ルの先頭か ら の領域のオ フ セ ッ ト
; (オ プシ ョ ン、 デ フ ォ ル トは 0 です)
; ARM レジス タ[regs]R0=0x000080C8R1=0x0007C000R2=0x0007C000R3=0x0007C000R4=0x00000363R5=0x00008EEC
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-3ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
R6=0x00000000R7=0x00000000R8=0x00000000R9=0xB3532737R10=0x00008DE8R11=0x00000000R12=0x00000000SP=0x0007FFF8LR=0x0000808DPC=0x000080B8
9.1.5 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スナップシ ョ ッ ト ビューアへの接続 (9-8 ページ)
• スナップシ ョ ッ ト ビューアのデバッガスク リプ ト作成時の注意事項 (9-9 ペー
ジ) .
概念
• スナップシ ョ ッ ト ビューアについて (9-5 ページ) .
参照 • コマンド ラインコンソールからのデバッガの起動 (2-7 ページ)
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト
(2-13 ページ)
• 『ARM アーキテクチャ リ ファレンスマニュアル』 , http://infocenter.arm.com/help/topic/com.arm.doc.set.architecture
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-4ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.2 スナップシ ョ ッ ト ビューアについて
スナップシ ョ ッ ト ビューアを使用する と、 インタラ クティブデバッグが使用できないシナリオにおけるアプ リ ケーシ ョ ン状態のスナップシ ョ ッ ト解析できます。 スナッ
プシ ョ ッ ト ビューアを使用したアプ リ ケーシ ョ ンのデバッグを有効にするには、 以下のデータが必要です。
• レジスタ値
• メモ リ値
• デバッグシンボル
このすべてのデータを用意できないと、 使用可能なデバッグのレベルが低下します。 このデータのキャプチャはアプリ ケーシ ョ ン固有であ り、 このためのツールは用意されていません。 例外ハンド ラまたは信号ハンド ラをインス トールして、 アプ リ ケー
シ ョ ンのエラー状況を見つけ、 必要なデータをダンプする必要がある場合があ り ます。
また、 ダンプしたデータをデバイスからデバッガがアクセス可能なワークステーシ ョ ン上に取得する方法についても考慮する必要があ り ます。 この方法についてのい
くつかの提案を以下に示します。
• セ ミ ホスティングを使用してデータをホス ト ワークステーシ ョ ン上のファイルに書き込みます。
• UART を介して端末にデータを送信します。
• TCP/IP を使用してソケッ ト を介してデータを送信します。
9.2.1 レジスタ値
レジスタ値は、 ある時間の特定ポイン トでのシステムの状態をエ ミ ュレートするために使用されます。 も重要なレジスタは現在のプロセッサモードのレジスタです。 例えば、 ARMv4 アーキテクチャプロセッサでは、 これらのレジスタは R0-R15 と以
下のプログラムステータスレジスタ (PSR) です。
• カレン トプログラムステータスレジスタ (CPSR)• アプリ ケーシ ョ ンプログラムステータスレジスタ (APSR)• セーブドプログラムステータスレジスタ (SPSR)
多くの ARM® プロセッサでは、 例外 (データアボート ) が発生する と、 別のプロ
セッサモードに切り替わるこ とに注意して下さい。 この場合、 使用するレジスタ値
は、 例外ハンド ラ内のレジスタ値ではなく、 例外を起こした正しいモードを反映するこ とを確認する必要があ り ます。
また、 アプリ ケーシ ョ ンで浮動小数点データが使用されており、 デバイスにベクタ浮動小数点ハード ウェアがある場合は、 スナップシ ョ ッ ト ビュアにベクタ浮動小数点レジスタの内容を指定する必要があ り ます。 キャプチャする重要なレジスタを以下
に示します。
• 浮動小数点ステータスおよび制御レジスタ (FPSCR)• 浮動小数点例外レジスタ (FPEXC)• 単精度レジスタ (Sn)• 倍精度レジスタ (Dn)• 4 倍精度レジスタ (Qn)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-5ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.2.2 メモリ値
大半のアプリ ケーシ ョ ン状態は通常、 グローバル変数、 ヒープ、 およびスタ ッ クの形式でメモ リに格納されます。 サイズの制約のために、 スナップシ ョ ッ ト ビューアに
メモ リ内容全体をコピーするのが難しいこ とがあ り ます。 このよ う な場合、 特に重要
なメモ リ領域を慎重に検討する必要があ り ます。
ク ラ ッシュをデバッグする場合に、 ク ラ ッシュの要因を見つけ出すのに有用な情報はコールスタ ッ クであるこ とが多いです。 コールスタ ッ クは、 応するすべての関数パラ メータの値や例外以前の各関数の呼び出しシーケンスを示すためです。 コールス
タ ッ クを表示するには、 デバッガが現のスタ ッ クポインタを認識しており、 スタ ックを含むメモ リの内容にアクセスできる必要があ り ます。 デフォルトでは、 ARM プロセッサではスタ ッ クが下方に展開されるので、 現在のスタ ッ クポインタから開始し、 スタ ッ クの開始位置に達するまでメモ リ内を上方に向かって展開する メモ リ用意する必要があ り ます。 スタ ッ クの内容全体を指定できない場合でも、 近の関数呼
び出しが分かるため、 現在のスタ ッ クポインタから始ま一部分でも有効です。
アプリ ケーシ ョ ンでグローバル (extern またはファイル static) データを使用してい
る場合は、 対応する メモ リ値を指定する とデバッガ内の変数を表示できます。
ヒープデータを指すローカルまたはグローバル変数がある場合は、 デバッガの関連ポインタに従ってデータを検証するこ とが必要になる場合があ り ます。 これを行うに
は、 スナップシ ョ ッ ト ビューアにヒープの内容を指定しておく必要があ り ます。 ヒー
プはメモ リの広い範囲を占有してしま う こ とがあ り、 ヒープ全体をキャプチャできないこ とがあるので注意して下さい。 メモ リ内のヒープのレイアウ ト と ヒープ割り当
てを制御するデータ構造は、 アプリ ケーシ ョ ンまたは C ライブラ リ固有である場合
があるので、 詳細については、 関連のマニュアルを参照して下さい。
逆アセンブリ レベルでデバッグするには、 アプリ ケーシ ョ ンコードが配置されている メモ リ値にデバッガからアクセスできる必要があ り ます。 通常はコードを含むメモ
リの内容をキャプチャする必要はあ り ません。 これは、 多くの場合、 fromelf などの
処理ツールを使用して同じデータをイ メージから直接抽出できるからです。 ただし、
以下のよ うな複雑な状況に注意して下さい。)
• イ メージおよびメモ リ内の値が変わる可能性がある自己変更型コード
• 実行時のイ メージ内でのメモ リ アドレスのダイナミ ッ クな再配置
9.2.3 デバッグシンボル
デバッガには、 以下のよ うなアプリ ケーシ ョ ンに関する高レベルの情報を表示するために、 デバッグ情報が必要です。
• ソースコード
• 変数の値と型
• 構造体
• コールスタ ッ ク
この情報はコンパイラおよびリ ンカによってアプ リ ケーシ ョ ンイ メージ内に格納されるので、 デバイス上で実行されている同じイ メージのローカデバッグコピーがあるこ とを確認する必要があ り ます。 イ メージに格納されるデバッグ情報の量、 そして
デバッグセッシ ョ ンの結果と して生じ品質は、 コンパイラおよびリ ンカに渡されるデバッグおよび 適化の設定による影響を受ける可能性があ り ます。
組み込みデバイスでイ メージを実行する と きは通常、 できる限り多くのデバッグ情報を取り除きます。 このよ う な場合、 デバッグ時はデバッグ情報を取り除く前のイ
メージを使用して下さい。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-6ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.2.4 関連項目
タスク
• スナップシ ョ ッ ト ビューアへの接続 (9-8 ページ)
• スナップシ ョ ッ ト ビューアの初期化ファイルの作成 (9-2 ページ)
• スナップシ ョ ッ ト ビューアのデバッガスク リプ ト作成時の注意事項 (9-9 ペー
ジ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-7ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.3 スナップシ ョ ッ ト ビューアへの接続
スナップシ ョ ッ ト ビューアには、 デバッガを使用して既知のシステム状態のスナップシ ョ ッ トの解析のために使用する仮想ターゲッ トが用意されいます。
9.3.1 前提条件
接続する前に、 ある時間の特定時点でのターゲッ トに関する静的情報が記載されたスナップシ ョ ッ ト ビューアの初期化ファイルが準備されている とを確認して ください。 例えば、 レジスタの内容、 メモ リ、 プロセッサ状態などです。
9.3.2 手順
--target コマンド ラ インオプシ ョ ンを使用してコマンド ラ インコンソールでデバッガ
を起動し、 スナップシ ョ ッ ト ビューアの初期化ファ イルをデバッガに渡します。 :
debugger --target=int.ini --script=int.cmm
9.3.3 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スナップシ ョ ッ ト ビューアの初期化ファイルの作成 (9-2 ページ)
• スナップシ ョ ッ ト ビューアのデバッガスク リプ ト作成時の注意事項 (9-9 ペー
ジ) .
概念
• スナップシ ョ ッ ト ビューアについて (9-5 ページ) .
参照 • コマンド ラインコンソールからのデバッガの起動 (2-7 ページ)
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト
(2-13 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-8ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
9.4 スナップシ ョ ッ ト ビューアのデバッガスクリプ ト作成時の注意事項
スナップシ ョ ッ ト ビューアは、 元のシステムの状態をエミ ュレートする初期化ファイルを使用します。 シンボルは、/nocode /noreg 引数を指定した data.load.elf コマンド
を使用してイ メージからロード されます。
スナップシ ョ ッ トデータおよびレジスタは読み出し専用なので、 使用できるコマンドは限定されます。
以下の例は、 CMM 形式のコマンドを使用して、 types_m3.axf イ メージの内容を解析
するスク リプ ト を示しています。
例 9-2 CMM 形式のスクリプ ト ファイル
var.print "Connect and load symbols:"system.updata.load.elf "types_m3.axf" /nocode /noreg
;配列と配列のポイ ン タvar.print ""var.print "Arrays and pointers to arrays:"var.print "Value of i_array[9999] is " i_array[9999]var.print "Value of *(i_array+9999) is " *(i_array+9999)var.print "Value of d_array[1][5] is " d_array[1][5]var.print "Values of *((*d_array)+9) is " *((*d_array)+9)var.print "Values of *((*d_array)) is " *((*d_array))var.print "Value of &d_array[5][5] is " &d_array[5][5]
; レジス タ PC 内のア ド レ スか ら 0x100 バイ ト を表示var.print ""var.print "Display 0x100 bytes from address in register PC:"data.dump r(PC)++0x100
;構造と ビ ッ ト フ ィ ール ドvar.print ""var.print "Structures and bit-fields:"var.print "Value of values2.no is " values2.novar.print "Value of ptr_values->no is " ptr_values->novar.print "Value of values2.name is " values2.namevar.print "Value of ptr_values->name is " ptr_values->namevar.print "Value of values2.name[0] is " values2.name[0]var.print "Value of (*ptr_values).name is " (*ptr_values).namevar.print "Value of values2.f1 is " values2.f1var.print "Value of values2.f2 is " values2.f2var.print "Value of ptr_values->f1 is " ptr_values->f1
var.print ""var.print "Disconnect:"system.down
9.4.1 関連項目
タスク
• Eclipse からのデバッガの起動 (2-6 ページ)
• スナップシ ョ ッ ト ビューアへの接続 (9-8 ページ)
• スナップシ ョ ッ ト ビューアの初期化ファイルの作成 (9-2 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-9ID 0 5 1 5 1 2 Non-Confidential
スナップシ ョ ッ ト ビューアの使用
概念
• スナップシ ョ ッ ト ビューアについて (9-5 ページ) .
参照 • コマンド ラインコンソールからのデバッガの起動 (2-7 ページ)
• DS-5 デバッガコマンド ラ インコンソールのキーボードシ ョート カッ ト
(2-13 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 9-10ID 0 5 1 5 1 2 Non-Confidential
第 10 章 DS-5 デバッグパースペクテ ィブおよびビュー
以下の各ト ピッ クでは、 Eclipse 総合開発環境 (IDE) の DS-5 デバッグパースペクティ
ブおよび関連ビューについて説明します。
参照 • [App Console] ビュー (10-3 ページ)
• [ARM Asm Info] ビュー (10-5 ページ)
• ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• イベン ト ビューアのチャネルエディ タ (10-18 ページ)
• [Commands] ビュー (10-20 ページ)
• [Debug Control] ビュー (10-23 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Expressions] ビュー (10-32 ページ)
• 関数ビュー (10-35 ページ)
• [History] ビュー (10-38 ページ)
• [Memory] ビュー (10-40 ページ)
• [Modules] ビュー (10-44 ページ)
• [Registers] ビュー (10-47 ページ)
• [Screen] ビュー (10-50 ページ)
• [Scripts] ビュー (10-53 ページ)
• [Target] ビュー (10-55 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-1ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• [Trace] ビュー (10-57 ページ)
• [Variables] ビュー (10-61 ページ)
• [Export memory] ダイアログボッ クス (10-64 ページ)
• [Import memory] ダイアログボッ クス (10-66 ページ)
• [Export trace report] ダイアログボッ クス (10-68 ページ)
• [Breakpoint properties] ダイアログボッ クス (10-70 ページ)
• [Watchpoint properties] ダイアログボッ クス (10-75 ページ)
• [ ト レースポイン トのプロパティ] ダイアログボッ クス (10-76 ページ)
• [Manage Signals] ダイアログボッ クス (10-77 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— [Remote Systems] ビュー (5-3 ページ)
— [Remote System Details] ビュー (5-5 ページ)
— [Remote Scratchpad] ビュー (5-7 ページ)
— [Terminals] ビュー (5-8 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-2ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.1 [App Console] ビュー
このビューでは、 ARM® C ラ イブラ リでのセ ミ ホスティングの実装によって提供され
るコンソール I/O 機能を使用できます。 この機能を使用するには、 セ ミ ホスティング
ポート をデバッガで有効にする必要があ り ます。
図 10-1 [App Console] ビュー
注 このビューのデフォルト設定は、 [Preferences] ダイアログボッ クスの DS-5 デバッガ
設定によって制御されます。 例えば、 特定ファ イルのデフォルの場所または表示する
大行数などがあ り ます。 これらの設定にアクセスするには、 [Window] メニューの
[Preferences...] を選択します。
10.1.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Save Console Buffer]
[Semihosting Console] ビューの内容をテキス ト ファ イルに保存します。
[Clear Console]
[Semihosting Console] ビューの内容をク リ アします。
[Scroll Lock] [Semihosting Console] ビューのメ ッセージの自動スクロールを有効ま
たは無効にできます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-3ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[View Menu] このメニューは以下のオプシ ョ ンから構成されています。
[New App ConsoleView] [App Console] ビューの新しいインスタンスを表示します。
[Bring to Front for Write] 有効にする と、 セ ミ ホスティングアプリ ケーシ ョ ンが入力を確認したと きに、 デバッガはフォーカスを自動的にこのビューに変更します。
[Copy] 選択したテキス ト をコピーします。
[Paste] 以前にコピーしたテキス ト を貼り付けます。 アプ リ ケーシ ョ ンがセ ミ ホ
スティングプロンプ ト を表示時にのみ、 テキス ト を貼り付けるこ とができます。
[Select All] すべてのテキス ト を選択します。
10.1.2 関連項目
タスク
• セ ミ ホスティングの使用 (8-4 ページ)
• デバッガでの自動セミ ホスティングサポートの有効化 (8-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• セ ミ ホスティングと top of memory について (8-2 ページ) .
参照 • [Target] ビュー (10-55 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-4ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.2 [ARM Asm Info] ビュー
このビューでは、 ARM® または Thumb® の命令やディ レクティブの詳細情報を表示で
きます。
ARM アセンブラエディ タを使ってアセンブ リ言語ソースファ イル (.s) を編集して
いる場合は、 以下の操作を実行して詳細情報にアクセスできます。
1. 命令またはディ レクティブを選択します。
2. F3 を押します。
関連ドキュ メン トが [ARM Asm Info] ビューに表示されます。 F3 を押すと、 [ARM Asm Info] ビューが自動的に表示されます。
図 10-2 [ARM Asm Info] ビュー
このビューを手動で追加するには、 以下の手順に従います。
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
2. [Window] → [Show View] → [Other...] を選択して [Show View] ダイアログ
ボッ クスを開きます。
3. [DS-5 デバッガ] グループから [ARM Asm Info] ビューを選択します。
10.2.1 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • ARM アセンブラエディ タ (10-6 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-5ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.3 ARM アセンブラエディ タ
ARM® アセンブラエディ タには、 構文の強調表示、 コード書式、 ARM アセンブ リ言
語ソースファ イルのラベルに対するコンテンツアシスタンス機能などあ り ます。 この
エディ タを使用する と、 以下を実行できます。
• ソースコードを編集します。
• 構文ハイライ ト を表示します。 • 命令またはディ レクティブを選択して F3 を押し、 関連 ARM アセンブラ リ ファ
レンス情報を表示します。
• 自動補完コンテンツアシス ト を使用します。
• ブレークポイン ト を作成、 削除、 イネーブルまたはディセーブルします。
図 10-3 ARM アセンブラエディ タ
各エディ タタブの左余白には、 ソースコード内の特定の行に関連付けられたビューのマーカを表示するマーカバーがあ り ます。
ブレークポイン ト を設定するには、 ブレークポイン ト を設定する位置のマーカバーをダブルク リ ッ ク します。 ブレークポイン ト を削除するには、 ブレークポイン トマー
カをダブルク リ ッ ク します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-6ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.3.1 アクシ ョ ンコンテキスト メニューのオプシ ョ ン
マーカーバーか、 表示されている場合は行番号の列を右ク リ ッ ク して、 ARM アセン
ブラエディ タのアクシ ョ ンコンテキス ト メニューを表示します。 使用可能なオプシ ョ
ンには、 以下のものがあ り ます。
[DS-5 Breakpoints] メニュー
以下のブレークポイン トオプシ ョ ンが用意されています。
[Toggle Breakpoint] 新しいブレークポイン ト を追加するか、 選択したブレークポイン ト を削除します。
[Disable Breakpoin]、 [Enable Breakpoint] 選択したブレークポイン ト を無効または有効にします。
[Breakpoint Properties...] 選択したブレークポイン トの [Breakpoint Properties] ダイアロ
グボッ クスを表示します。 これを使用する と、 ブレークポイン
トのアクティブ化を制御できます。
[Toggle Trace Start Point] 選択したアドレスの ト レースの起点を設定または削除します。
[Toggle Trace Stop Point] 選択したアドレスの ト レースの終点を設定または削除します。
[Toggle Trace Trigger Point] 選択したアドレスの ト レースの ト リガポイン ト を開始します。
[Default Breakpoint Type]
以下のブレークポイン トオプシ ョ ンが用意されています。
[C/C++ Breakpoints] C/C++ パースペクティブブレークポイン ト方式を使用する場
合に選択します。
[DS-5 C/C++ Breakpoint] DS-5 デバッグパースペクティブブレークポイン ト方式を使用
する場合に選択します。 DS-5 デバッグパースペクティブの場
合はこれがデフォルトで。
青色の C/C++ パースペクティブブレークポイン ト マーカと区
別するために、 DS-5 ブレークポイン トマーカは赤色です。
注 [Default Breakpoint Type] を選択する と、 このコンテキス ト メニューの
上位の [Toggle Breakpoint] メニューが表示されるので、 左辺ルーラ
をダブルク リ ッ ク して、 CDT ブレークポイン ト または DS-5 ブレークポ
イン トのいずれかに切り替えます。 このメニューは、 C/C++、 Debug、 お
よび DS-5 デバッグパースペクティブの上部にある メ イン メニューバー
の [Run] メニューから利用するこ と もできます。
[DS-5 Breakpoints] のメニューオプシ ョ ンは、 この設定を実行しないで DS-5 ブレークポイン ト を必ず参照します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-7ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Show Line Numbers]
行番号を表示した り非表示にしたり します。
こ こに記載されていない他のオプシ ョ ンについては、 ダイナミ ッ クヘルプを参照して ください。
10.3.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ソースコードの編集 (2-28 ページ)
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [ARM Asm Info] ビュー (10-5 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-8ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.4 [Breakpoints] ビュー
このビューを使用する と、 以下を実行できます。
• ブレークポイン トおよびウォッチポイン ト をディセーブル、 イネーブル、 または削除します。
• ブレークポイン トおよびウォッチポイン トの一覧をインポート またはエクスポート します。
• 選択したブレークポイン トが設定されたコード行を含むソースファ イルを表示します。
• 選択したブレークポイン トが設定された位置の逆アセンブリ を表示します。
• 選択したウォッチポイン トが設定されている メモ リ を表示します。
• ブレークポイン トのプロパティを設定してブレークポイン トのアクティブ化を遅らせます。
• すべての Unix シグナルおよびプロセッサ例外ハンド ラのメ ッセージの処理と
メ ッセージの出力を制御します。
• 選択したウォッチポイン トのアクセスタイプを変更します。
図 10-4 [Breakpoints] ビュー
10.4.1 ブレークポイン トエン ト リの構文
ブレークポイン トエン ト リには以下の構文があ り ます。
source_file:linenum @ function+offset address [#ID instruction_type, ignore = num/count, nHits hits, (condition)]
各項目には以下の意味があ り ます。
source_file:linenum
ソースファ イルが利用できる場合は、 ブレークポイン トが設定されているファ イルのファイル名および行番号 (threads.c:115)。
function+offset
ブレークポイン トが設定されている関数の名前および関数の開始位置からのバイ ト数。 例えば、 accumulate()+52 は、 ブレークポイン トが accumulate() 関数の開始位置から 52 バイ ト離れているこ とを示します。
address ブレークポイン トが設定されたアドレス。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-9ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
ID ブレークポイン トの ID 番号 (#N)。 場合によっては、 for ループ内など、
ブレークポイン トが多数のサブブレークポイン トで構成されている可能性があ り ます。 これらは N.n と して識別されます。 N は親の数です。 この
ダイアログボッ クスのサブブレークポイン トの説明は、 以下のよ うに表示されます。
main()+132sub-breakpoint ofmain()+132 @ threads.c:56 [#14 ARM] (threads)
instruction_type
ブレークポイン トのアドレスの命令タイプ (ARM または Thumb)。
ignore = num/count
設定されている場合はブレークポイン トの ignore 回数。各項目には以下
の意味があ り ます。
num は 初に count で初期化され、 ゼロになるまで、 達するたびにデク
リ メン ト します。
count で、 ブレークポイン トの ignore 回数を指定します。
nHits hits ブレークポイン トに達するたびにインク リ メ ン トするカウンタ。 これ
は、 初めてブレークポイン トに達する と表示されます。 ignore 回数を設
定した場合、 hits 回数は ignore 回数がゼロに達するまでインク リ メ ン ト
を開始しません。
condition 指定した停止条件 ((i==3))。
10.4.2 ウォッチポイン トエン ト リの構文
ウォ ッチポイン トエン ト リには以下の構文があ り ます。
name type[#ID]
各項目には以下の意味があ り ます。
name ウォ ッチポイン トが設定された変数の名前。
type ウォ ッチポイン トのアクセスタイプ。
ID ウォ ッチポイン トの ID 番号。
10.4.3 ト レースポイン トエン ト リの構文
ト レースポイン トエン ト リには以下の構文があ り ます。
source_file:linenum address
各項目には以下の意味があ り ます。
address ト レースポイン トが設定されたアドレス。
source_file:linenum
ソースファ イルが利用できる場合は、 ト レースポイン トが設定されているファ イルのファイル名および行番号 (Fireworks.c:529 0x80000A72)。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-10ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.4.4 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Remove] 選択したブレークポイン トおよびウォッチポイン ト を削除します。
[Remove All] すべてのブレークポイン トおよびウォッチポイン ト を削除します。
[Go to File] 選択したブレークポイン トが設定されているコード行を含むソースファ
イルを表示します。 ウォ ッチポイン トではこのオプシ ョ ンは無効です。
[Go to Disassembly]
選択したブレークポイン トが設定された位置の逆アセンブリ を表示します。 ウォ ッチポイン トではこのオプシ ョ ンは無効です。
[Go to Memory]
選択したウォッチポイン トが設定されている メモ リ を表示します。 ブレークポイン トではこのオプシ ョ ンは無効です。
[Skip All Breakpoints]
現在設定しているすべてのブレークポイン ト またはウォッチポイン ト を非アクティブにします。 デバッガはブレークポイン ト またはウォッチポ
イン ト ごとの有効 / 無効状態を記憶し、 これらを指定したと きにその状
態を復元します。
[Enable Breakpoints]
選択したブレークポイン トおよびウォッチポイン ト を有効にします。
[Disable Breakpoints]
選択したブレークポイン トおよびウォッチポイン ト を無効にします。
[Resolve] 選択したブレークポイン ト またはウォッチポイン トのアドレスを再評価
します。 アドレスを解決できる場合はブレークポイン ト またはウォッチ
ポイン トが設定され、 解決できない場合は保留のまま残り ます。
[Properties...]
選択したブレークポイン ト、 ウォ ッチポイン ト 、 または ト レースポイントの [プロパティ] ダイアログボッ クスを表示します。 これを使用する
と、 選択したウォッチポイン トのアクティブ化の制御やアクセスタイプの変更を行う こ とができます。
[Copy] 選択したブレークポイン トおよびウォッチポイン ト をコピーします。 これを実行するには、 標準キーボードシ ョート カッ ト も使用できます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-11ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Paste] コピーしたブレークポイン トおよびウォッチポイン ト を貼り付けます。 デフォルトでは、 ブレークポイン ト またはウォッチポイン トは有効です。 これを実行するには、 標準キーボードシ ョート カッ ト も使用できま
す。
[Select all] すべてのブレークポイン ト またはウォッチポイン ト を選択します。 これ
を実行するには、 標準キーボードシ ョート カッ ト も使用できます。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Breakpoints] ビュー [Breakpoints] ビューの新しいインスタンスを表示します。
[Export Breakpoints] ブレークポイン トおよびウォッチポイン トの現在のリ ス ト をファ イルにエクスポート します。
[Import Breakpoints] ブレークポイン トおよびウォッチポイン トの リ ス ト をファ イルからインポート します。
[Alphanumeric Sort] ビューに表示される文字列に基づいて リ ス ト をアルファベット順にソート します。
[Ordered Sort] リ ス ト を設定した順にソート します。
[Manage Signals] [Manage Signal] ダイアログボッ クスを表示します。
10.4.5 関連項目
タスク
• 実行ブレークポイン トの設定 (4-10 ページ)
• データウォッチポイン トの設定 (4-13 ページ)
• ト レースポイン トの設定 (4-15 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • ARM アセンブラエディ タ (10-6 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-12ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• [Breakpoint properties] ダイアログボッ クス (10-70 ページ)
• [Watchpoint properties] ダイアログボッ クス (10-75 ページ)
• [ ト レースポイン トのプロパティ] ダイアログボッ クス (10-76 ページ)
• [Manage Signals] ダイアログボッ クス (10-77 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— awatch (2-36 ページ)
— clear (2-49 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— ignore (2-84 ページ)
— resolve (2-145 ページ)
— rwatch (2-148 ページ)
— set breakpoint (2-156 ページ)
— set substitute-path (2-172 ページ)
— watch (2-222 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-13ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.5 C/C++ エディ タ
このエディ タを使用する と、 以下を実行できます。
• ソースコードを編集します。
• 構文ハイライ ト を表示します。
• C ラ イブラ リ関数の上にマウスポインタを置いたと きに対話式ヘルプを表示し
ます (例 : printf())。
• オート コンプリート機能のコンテンツアシス ト (Ctrl+Space) を使用します。
• ブレークポイン ト を作成、 削除、 イネーブルまたはディセーブルします。
図 10-5 C/C++ エディ タ
各エディ タタブの左余白には、 ソースコード内の特定の行に関連付けられたビューのマーカを表示するマーカバーがあ り ます。
ブレークポイン ト を設定するには、 ブレークポイン ト を設定する位置のマーカバーをダブルク リ ッ ク します。 ブレークポイン ト を削除するには、 ブレークポイン トマー
カをダブルク リ ッ ク します。
注 親ブレークポイン トに対するサブブレークポイン トがある場合、 マーカをダブルク
リ ッ クする と、 関連したサブブレークポイン ト も削除できます
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-14ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.5.1 アクシ ョ ンコンテキスト メニューのオプシ ョ ン
マーカバーか、 表示されている場合は行番号の列を右ク リ ッ ク して、 C/C++ エディ
タのアクシ ョ ンコンテキス ト メニューを表示します。 使用可能なオプシ ョ ンには、 以
下のものがあ り ます。
[DS-5 Breakpoints] メニュー
以下のブレークポイン トオプシ ョ ンが用意されています。
[Toggle Breakpoint] 選択したアドレスのブレークポイン ト を設定または
削除します。
[Toggle Hardware Breakpoint] 選択したアドレスのハードウェアブレークポイン トを設定または削除します。
[Resolve Breakpoint] 選択したアドレスの保留ブレークポイン ト を解決
します。
[Enable Breakpoint] 選択したアドレスのブレークポイン ト を有効にし
ます。
[Disable Breakpoint] 選択したアドレスのブレークポイン ト を無効にし
ます。
[Breakpoint Properties...] 選択したブレークポイン トの [Breakpoint Properties]ダイアログボッ クスを表示します。 これを使用する
と、 ブレークポイン トのアクティブ化を制御できます。
[Toggle Trace Start Point] 選択したアドレスの ト レースの起点を設定または削除します。
[Toggle Trace Stop Point] 選択したアドレスの ト レースの終点を設定または削除します。
[Toggle Trace Trigger Point] 選択したアドレスの ト レースの ト リガポイン ト を開始します。
[Default Breakpoint Type]
このデフォルト タイプオプシ ョ ンを使用する と、 ト ップレベルのコンテキス ト メニューエン ト リである [Toggle Breakpoint] が表示され、 マー
カバーをダブルク リ ッ ク して、 CDT ブレークポイン ト または DS-5 ブレークポイン トのいずれかに切り替えます。 DS-5 デバッガを使用する場
合は、 [DS-5 C/C++ Breakpoint] を選択する必要があ り ます。 青色の CDT ブレークポイン トマーカと区別するために、 DS-5 ブレークポイン
トマーカは赤色です。
[Show Line Numbers]
行番号を表示または非表示にします。
こ こに記載されていない他のオプシ ョ ンについては、 ダイナミ ッ クヘルプを参照して ください。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-15ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.5.2 エディ タのコンテキスト メニュー
ソースのいずれかの行で右ク リ ッ ク して、 C/C++ エディ タのコンテキス ト メニュー
を表示します。 ターゲッ トに接続した場合、 以下のオプシ ョ ンが有効になり ます。
[Set PC to Selection]
PC に、 選択したソース行のアドレスを設定します。
[Run to Selection]
選択したソース行まで実行します。
[Show in Disassembly]
このオプシ ョ ンを使用する と、 以下のよ うにな り ます。
1. [Disassembly] ビューの新しいインスタンスを開きます。
2. 選択したソース行に関連付けられたアドレスおよび命令を強調表示します。 垂直バーおよび影付きのハイライ トは、 関連する逆アセ
ンブリ を示しています。
図 10-6 選択したソース行の逆アセンブリの表示
こ こに記載されていない他のオプシ ョ ンについては、 ダイナミ ッ クヘルプを参照して ください。
10.5.3 関連項目
タスク
• 実行ブレークポイン トの設定 (4-10 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• デバッガパスの代入規則の設定 (4-34 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ソースコードの編集 (2-28 ページ)
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-16ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
概念
• 『ARM® DS-5™ : Eclipse の使用』 :
— C/C++ エディ タの概要 (4-2 ページ) .
参照 • [Disassembly] ビュー (10-28 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— set substitute-path (2-172 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-17ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.6 イベン ト ビューアのチャネルエディ タ
このエディ タを使用して、 イベン ト ビューアで生成された出力を表示できます。
注 このエディ タは、 インス トルメンテーシ ョ ン ト レースマクロセル (ITM) のキャプ
チャがサポート されているターゲッ トのみに対して有効にな り ます。
イベン ト ビューアが有効になった状態でデバッグセッシ ョ ンを開始する と、 有効になっている ITM チャネルごとにチャネルエディ タのタブが開きす。 イベン ト ビュー
アでは、 テキス ト ログがアプ リ ケーシ ョ ンから作成順に表示されます (新しいエント リがビューの下の方に追加されます) タイムスタンプが使用できる場合、 各ログエ
ン ト リの横にある追加の列に表示されます。
データは、 実行された場合にのみ、 アプリ ケーシ ョ ンからキャプチャされます。 ただ
し、 アプ リ ケーシ ョ ンを停止するまでデータはビューに表示されません。 ターゲッ ト
を停止するには、 デバッグ制御ビューで [Interrupt] アイコンをク リ ッ クするか、
コマンドビューで stop コマンドを入力します。 アプ リ ケーシ ョ ンが停止する と、 キャ
プチャされたログ情報が、 開いているビューに自動的に追加されます。
ログ情報のキャプチャを停止するには、 チャネルエディ タのタブを閉じます。 デバッグを終了した場合は、 デバッグ制御ビューで [ターゲッ トから切断] アイコンをク リ ッ ク して、 ターゲッ トから切断します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-18ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-7 イベン ト ビューアのチャネルエディ タ
10.6.1 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-19ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.7 [Commands] ビュー
このビューを使用する と、 以下を実行できます。
• デバッガコマンドを入力します。
• コマンドスク リプ ト を実行します。
• デバッガによって出力される メ ッセージを表示します。
• 内容をテキス ト ファ イルに保存します。
図 10-8 [Commands] ビュー
表示されるフ ィールドにコマンドを入力して DS-5 デバッガコマンドを実行し、
[Submit] をク リ ッ ク します。 ターゲッ トに接続するまで、 この機能は使用できませ
ん。
コマンドフ ィールドでコンテンツアシス トのキーボードの組み合わせ (Ctrl+Space キー) を使用して、 DS-5 デバッガコマンドの一覧を表示するこ とができます。 部分
コマンドを入力してフ ィルタ処理を行う こ と もできます。 例ば、 キーボードの組み合
わせの Ctrl+Space キーの後に 「pr」 と入力して、 print コマンドを検索します。
サブコマンドを表示するには、 ト ップレベルのコマンドでフ ィルタを行う必要があり ます。 例えば、 キーボードの組み合わせの Ctrl+Space キーの後に 「info」 と入力し
て、 すべての info サブコマンドを表示します。
注 このビューのデフォルト設定は、 [Preferences] ダイアログボッ クスの DS-5 デバッガ
設定によって制御されます。 例えば、 特定ファ イルのデフォルの場所または表示する
大行数などがあ り ます。 これらの設定にアクセスするには、 [Window] メニューの
[Preferences...] を選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-20ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.7.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Save Console Buffer]
[Commands] ビューの内容をテキス ト ファ イルに保存します。
[Clear Console]
[Commands] ビューの内容をク リ アします。
[Scroll Lock] [Commands] ビュー内のメ ッセージの自動スク ロール機能を有効また
は無効にします。
[Script menu]
コマンドスク リプ ト を管理して実行できるオプシ ョ ンのメニューは、 以下のとおりです。
< [Recent scripts list] > 近実行したスク リプ トの一覧。
< [Recent favorites list] > 近お気に入り リ ス トに追加したスク リプ トの一覧。
[Run Script File...] [Open] ダイアログボッ クスを表示し、 スク リプ ト ファ イルを
選択して実行します。
[Organize Favorites...] スク リプ ト を整理できる [Scripts] ビューを表示します。
[Show Command History View]
[History] ビューを表示します。
[Copy] 選択したコマンドをコピーします。 これを実行するには、 標準キーボー
ドシ ョート カッ ト も使用できます。
[Paste] 以前にコピーしたコマンドをコマンドフ ィールドに貼り付けます。 これ
を実行するには、 標準キーボードシ ョート カッ ト も使用できます。
[Select all] [Commands] ビュー内のすべての出力を選択します。 これを実行するに
は、 標準キーボードシ ョート カッ ト も使用できます。
[Save the selected lines as a script...]
[Save As] ダイアログボッ クスを表示して、 選択したコマンドをスク リ
プ ト ファ イルに保存します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-21ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Save As] ダイアログボッ クスの [Save] をク リ ッ クする と、 スク リプ
ト ファ イルをお気に入り リ ス トに追加するオプシ ョ ンを使用できます。 [OK] をク リ ッ ク して、 スク リプ ト をお気に入り リ ス トに追加します。 お気に入りは [Scripts] ビューに表示されます。
[Execute selected lines]
選択したコマンドを実行します。
[New Commands] ビュー
[Commands] ビューの新しいインスタンスを表示します。
10.7.2 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [History] ビュー (10-38 ページ)
• [Scripts] ビュー (10-53 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— DS-5 デバッガのコマンドの一覧 (アルファベッ ト順) (2-28 ページ)
— DS-5 デバッガコマンドの一般的な構文と使用方法 (2-2 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-22ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.8 [Debug Control] ビュー
このビューを使用する と、 以下を実行できます。
• 実行中のスレッ ドおよびユーザ空間プロセスを表示します。
• スレッ ド またはプロセスごとのスタ ッ ク要素を示すコールスタ ッ クを表示します。
• ターゲッ トの接続と切断を行います。
• アプリ ケーシ ョ ンイ メージをターゲッ トにロード して、 デバッガで必要な場合はデバッグ情報をロード します。
• アプリ ケーシ ョ ンを起動して特定のアドレスで停止します。
• 開始位置からアプ リ ケーシ ョ ンを実行します。
• アプリ ケーシ ョ ンを停止します。
• ターゲッ ト を リセッ ト します。
• ブレークポイン トに達したか、 またはターゲッ トが中断された後に、 アプリケーシ ョ ン実行を継続します。
• ソースレベルまたは命令レベルでアプリ ケーシ ョ ンをステップ実行して、 イメージの実行を制御します。
• 現在の作業ディ レク ト リ を設定します。
図 10-9 現在の作業ディレク ト リを設定します。
• ソースコードを検索して表示するすべてのコマンドを実行する と きにデバッガで使用される検索パスを変更します。
[Debug Control] ビューには、 実行中のスレッ ド、 ユーザ空間プロセス、 および関連
するコールスタ ッ クの階層的レイアウ ト を使用したターゲッ ト接続が表示されます。 DS-5 デバッグパースペクティブの一部のビューは、 現在のスタ ッ クフレームに関連
付けられています。 他のビューは、 エディ タまたはターゲッ ト接続に関連付けられま
す。 それぞれの関連付けられているビューは同期します。
接続の状態は、 異なるアイコンや背景のハイライ トで識別され、 ビューステータスバーにも表示されます。 以下の例は、 接続された状態の接続と切断された状態の接続
を示しています。 別の設定をビューに追加する場合は、 [Debug Control] ビューのメ
ニューを使用できます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-23ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-10 [Debug Control] ビュー
10.8.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Collapse All]
展開されたすべてのスタ ッ ク ト レース設定を折りたたみます。
[Connect to Target]
以前の接続と同じ起動コンフ ィギュレーシ ョ ンの設定を使用して、 選択したターゲッ トに接続します。
[Disconnect from Target]
選択したターゲッ トから切断します。
[Remove Connection]
選択したターゲッ ト接続を [Debug Control] ビューから削除します。
[Debug from menu]
このメニューでは、 接続が確立されたと きに実行できるアクシ ョ ンの一覧が表示されます。
[Reset menu]
このメニューでは、 ターゲッ ト上で使用できる リセッ トの一覧が表示されます。
[Run/Continue]
現在の位置からアプ リ ケーシ ョ ンイ メージの実行を開始します。
ブレークポイン トに達したか、 またはターゲッ トが中断された後に、 アプ リ ケーシ ョ ンの実行を継続します。
注 [Connect only] 接続は、 実行する前に、 PC レジスタをイ メージの開始
位置に設定する必要があ り ます。
[Interrupt] ターゲッ ト を中断して現在のアプリ ケーシ ョ ンを停止します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-24ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Step Source Line] , [Step Instruction]
このオプシ ョ ンは、 以下のよ うに選択したステップ実行モードによって異な り ます。
• ソース行モードを選択した場合は、 デバッグ情報があるすべての関数呼び出しへのステップ実行など、 ソースレベルでステップ実行します。
• 命令モードを選択した場合は、 すべての関数呼出しへのステップ実行など、 命令レベルでステップ実行します。
[Step Over Source Line] , [Step Over Instruction]
このオプシ ョ ンは、 以下のよ うに選択したステップ実行モードによって異な り ます。
• ソース行モードを選択した場合は、 ソースレベルでステップ実行しますが、 すべての関数呼び出しをステップオーバーします。
• 命令モードを選択した場合は、 命令レベルでステップ実行しますが、 すべての呼び出し関数をステップオーバーします。
[Step Out] 選択したスタ ッ クフレームが終了した後、 次の命令の実行を継続しま
す。
[Stepping by Source Line (press to step by instruction)] , [Stepping by Instruction (press to step by source line)]
ソース行と命令間のステップ実行モードを切り替えます。
[Disassembly] ビューおよび [Source] ビューは、 命令モードでステッ
プ実行したと きに自動的に表示されます。
[Source] ビューは、 ソース行モードでステップ実行したと きに自動的
に表示されます。 ターゲッ トが共有ライブラ リ などのコードで停止した
り、 対応するソースが使用できない場合、 [Source] ビューは表示され
ません。
[Debug Configurations...]
選択した接続のコンフ ィギュレーシ ョ ンが表示される と、 [Debug Configurations] ダイアログボッ クスが表示されます。
[Step Out to This Frame]
選択したスタ ッ クフレームの実行を継続します。
[Change Connection Color]
接続アイコンの色を変更できます。
[View Menu] 以下のオプシ ョ ンが用意されています。
[Add Configuration (without connecting)...] [Add Launch Configuration] ダイアログボッ クスを表示します。 このダイアログボッ クスには、 まだ [Debug Control] ビューに
記載されていないコンフ ィ ュレーシ ョ ンの一覧が表示されます。
複数のコンフ ィギュレーシ ョ ンを選択して、 [OK] をク リ ッ
ク します。 選択したコンフ ィギュレーシ ョ ンは [Debug Control] ビューに追加されますが、 接続されていません。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-25ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Load...] イ メージ、 デバッグ情報、 イ メージとデバッグ情報、 または
追加のデバッグ情報をロードするかど うか選択できるダイアログボッ クスを表示します。 このオプシ ョ ンは、 この機能がサ
ポート されていないターゲッ トでは無効の場合があ り ます。
[Set Working Directory...] [Current Working Directory] ダイアログボッ クスを表示します。 現在の作業ディ レク ト リの新しい場所を入力して、 [OK] を
ク リ ッ ク します。
[Path Substitution...] [Path Substitution] および [Edit Substitute Path] ダイアログ
ボッ クスを表示します。
[Edit Substitute Path] ダイアログボッ クスを使用して、 イ メー
ジパスをホス ト上のソースファ イルパスに関連付けます。 [OK] をク リ ッ ク します。 イ メージとホス トパスが [Path Substitution] ダイアログボッ クスに追加されます。 操作が完了
したら、 [OK] をク リ ッ ク します。
[Reset DS-5 Views to ‘Linked’] DS-5 のビューを [Debug Control] ビューで選択した接続にリ
セッ ト します。
[Threads Presentation] スレッ ドをスタ ッ ク ト レースにフラ ッ ト または階層表示のいずれかで表示します。
[Auto Expand Stack] 展開されたスタ ッ クを接続の選択時に自動的に表示するかどうかを制御します。
10.8.2 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ターゲッ トからの切断 (3-28 ページ)
• イ メージの実行 (4-6 ページ)
• アプリ ケーシ ョ ンのステップ実行 (4-28 ページ)
• デバッガパスの代入規則の設定 (4-34 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• ターゲッ ト接続の種類 (3-3 ページ)
• ターゲッ トへのイ メージのロードについて (4-2 ページ)
• デバッガへのデバッグ情報のロードについて (4-4 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-26ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
参照 • C/C++ エディ タ (10-14 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— add-symbol-file (2-32 ページ)
— continue (2-54 ページ)
— file, symbol-file (2-75 ページ)
— interrupt, stop (2-116 ページ)
— load (2-119 ページ)
— loadfile (2-120 ページ)
— next (2-132 ページ)
— nexti (2-133 ページ)
— nexts (2-134 ページ)
— reset (2-143 ページ)
— run (2-147 ページ)
— set debug-from (2-157 ページ)
— start (2-204 ページ)
— step (2-206 ページ)
— stepi (2-207 ページ)
— steps (2-208 ページ)
— quit, exit (2-141 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-27ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.9 [Disassembly] ビュー
このビューを使用する と、 以下を実行できます。
• ターゲッ ト メモ リの [Disassembly] ビューを表示します。
• [Disassembly] ビューの開始アドレスを指定します。 $r3 のよ うな式をこの
フ ィールドに使用するか、 レジスタを [レジスタ] ビューから [逆アセンブリ ] ビューにド ラ ッグアンド ド ロ ップして、 そのレジスタのアドレスに逆アセンブリ を表示できます。
• [Disassembly] ビューの命令セッ ト を選択します。
• メモ リ位置のブレークポイン ト またはウォッチポイン ト を作成、 削除、 イネーブルまたはディセーブルします。
• 選択したビューをフ リーズして実行中のターゲッ トによる値の更新を抑制します。
図 10-11 [Disassembly] ビュー
[Disassembly] ビューの影付は、 各関数の開始位置を示しています。
[Disassembly] ビューの影付けされているソ リ ッ ドは、 現 PC に対応するソース行の
命令であるこ とを示します。
[Disassembly] ビューの左余白に、 逆アセンブ リ コードの特定の位置に関連付けられ
ているビューマーカを表示するマーカバーを検索できます (マカバーがあ り ます)。
ブレークポイン ト を設定するには、 ブレークポイン ト を設定する位置のマーカバーをダブルク リ ッ ク します。 ブレークポイン ト を削除するには、 ブレークポイン トマー
カをダブルク リ ッ ク します。
注 親ブレークポイン トに対するサブブレークポイン トがある場合、 マーカをダブルク
リ ッ クする と、 関連したサブブレークポイン ト も削除できます
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-28ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.9.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク し
ます。 これがデフォルトです。 または、 ビューを特定の接続にリ
ンクするこ と もできます。 リ ンクする接続がド ロ ップダウン リ ス
トに表示されていない場合は、 まず [Debug Control] ビューで接
続を選択する必要があ り ます。
[Back]、 [Forward]
履歴一覧内を移動します。
< [Next Instruction] > [Debug Control] ビューで選択したスタ ッ クフレームに移動し
ます。
[$LR] LR レジスタに移動します。
[expression] 式で指定されたアドレスに移動します ($PC+256)。
address 指定したアドレスに移動します。
[History] [Address] フ ィールドで指定したアドレスおよび式がド ロ ップダ
ウンボッ クスに追加され、履歴一覧をク リ アするか Eclipse を終了
するまで保存されます。 今後の使用に備えて式を保持する場合は、
式を [Expressions] ビューに追加して ください。
[Address] フ ィールド 逆アセンブリ を表示するアドレスを入力します。
コンテキス ト メニューのオプシ ョ ンは、 このフ ィールドの編集に使用できます。
[Size] フ ィールド プログラムカウンタによってポイン ト されている場所の前後に表
示する命令の数。
コンテキス ト メニューのオプシ ョ ンは、 このフ ィールドの編集に使用できます。
[Search] デバッグ情報内でシンボルを検索します。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Disassembly View] [Disassembly] ビューの新しいインスタンスを表示しま
す。
[Instruction Set] デフォルトでビューに表示する命令セッ ト 。 以下
のいずれかを選択します。
[AUTO] 命令セッ ト をイ メージから自動検出します。
ARM ARM® 命令セッ ト。
[Thumb] Thumb® 命令セッ ト。
[Clear History] [History] ド ロ ップダウンボッ クス内のアドレスおよび
式の一覧をク リ アします。
[Refresh] ビューを更新します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-29ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 これを使用する と、 [Size] および [Type] フ ィールドや
[Refresh] オプシ ョ ンを無効または有効にするこ と もで
きます。
[Action context menu]
左余白で右ク リ ッ クする と、 対応するアドレスおよび命令が選択され、 このコンテキス ト メニューが表示されます。 使用できるオ
プシ ョ ンは以下のとおりです。
[Copy] 選択したアドレスをコピーします。
[Paste] 後にコピーしたアドレスを [Address]フ ィールドに貼り付けます。
[Select All] [Size] フ ィールドで指定された範囲のすべて
の逆アセンブリ を選択します。
逆アセンブリの選択した行をコピーする場合、このメニューで [Copy] オプシ ョ ンを使用で
きません。 代わりに、 ホス トのコピーのキー
ボードシ ョート カッ ト (Windows の場合は Ctrl+C キー) を使用して ください。
[Run to Selection] 選択したアドレスまで実行します。
[Set PC to Selection] PC レジスタを選択したアドレスに設定しま
す。
[Show in source] ソースコードを使用できる場合は、 以下の手
順に従います。
1. 必要に応じて、 C/C++ エディ タビューで
対応するソースファ イルを開きます。
2. 選択したアドレスに関連付けられているソース行を強調表示します。
[Show in registers] メモ リ アド レスがレジスタに対応している場合は、 選択された関連レジスタ と と もに[Registers] ビューが表示されます。
[Show in functions] メモ リ アド レスが関数に対応している場合は、選択された関連の関数と と もに [関数]ビューが表示されます。
[Toggle Breakpoint] 選択したアドレスのブレークポイン ト を設定
または削除します。
[Toggle Hardware Breakpoint] 選択したアドレスのハード ウェアブレークポイン ト を設定または削除します。
[Resolve Breakpoint] 選択したアドレスの保留ブレークポイン ト
を解決します。
[Enable Breakpoint] 選択したアドレスのブレークポイン ト を有効
にします。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-30ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Disable Breakpoint] 選択したアドレスのブレークポイン ト を無
効にします。
[Toggle Trace Start Point] 選択したアドレスの ト レースの起点を設定または削除します。
[Toggle Trace Stop Point] 選択したアドレスの ト レースの終点を設定または削除します。
[Toggle Trace Trigger Point] 選択したアドレスの ト レースの ト リガポイント を開始します。
コンテキス ト メニューの編集オプシ ョ ン
編集するために [Address] フ ィールドまたは [Size] フ ィールド
を選択した場合、 以下のオプシ ョ ンがコンテキス ト メニューで利用できます。
[Cut] 選択したテキス ト をコピーして削除します。
[Copy] 選択したテキス ト をコピーします。
[Paste] 以前に切り取った、 またはコピーしたテキス
ト を貼り付けます。
[Delete] 選択したテキス ト を削除します。
[Undo] 後の変更を元に戻します。
[Select All] すべてのテキス ト を選択します。
10.9.2 関連項目
タスク
• 実行ブレークポイン トの設定 (4-10 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• 特定のスレッ ドへのブレークポイン トの設定 (4-20 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • C/C++ エディ タ (10-14 ページ)
• [Registers] ビュー (10-47 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-31ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.10 [Expressions] ビュー
このビューを使用する と、 以下を実行できます。
• よ く使用する式またはさらに詳し く検証する式を追加します。
• 式を編集および削除します。
• 選択したビューをフ リーズして実行中のターゲッ トによる値の更新を抑制します。
図 10-12 [Expressions] ビュー
注 式を評価する と きに式に副作用がある場合、 予測不能な結果が生じます。 式を評価す
る と きに、 式に対する複数の入力の状態が変更した場合に、 副作用が発生します。
このよ う な場合は、 x++ または x+=1 の代わりに x+1 を使用する必要があ り ます。
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] main+1024 などのアドレスを解決する式。
[Value] 式の値。 白い背景の値を変更できます。 黄色の背景は、 値が変更された
こ とを示します。
ビューをフ リーズする と、 値を変更できません。
[Type] 式によって識別されるアドレスの値に関連付けられている型。
[Count] 配列またはポインタ要素の数。 ポインタ要素の数を編集できます。
[Size] 式のサイズ (ビッ ト単位)。
[Location] 式によって識別される 16 進数のアドレス、 または式に 1 つのレジスタ
名しかない場合はレジスタの名前。
[Access] 式のアクセスタイプ。
デフォルトでは、 すべての列が表示されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-32ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.10.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Add New Expression]
新しい式を式リ ス トに追加します。
[Remove Selected Expression]
選択した式を リ ス トから削除します。
[Remove All Expressions]
すべての式を リ ス トから削除します。
[Search] 現在のビュー内で式のデータを検索します。
[Cut] 選択した式をコピーして削除します。
[Copy] 選択した式をコピーします。
[Disassembly] ビューまたは [Memory] ビューで使用するための式をコ
ピーするには、 まず [Name] フ ィールドの式を選択します。
[Paste] 以前に切り取った、 またはコピーした式を貼り付けます。
[Delete] 選択した式を削除します。
[Select All] すべての式を選択します。
[Show in memory view]
このオプシ ョ ンを有効にする と、 以下のいずれかに対して設定されたアドレス と と もに [Memory] ビューが表示されます。
• 式が配列のアドレス、 &name のアドレスに変換された場合は、 選択
した式の値。
• 配列の名前、 name の式の場所。
sizeof キーワードを使用して、 メモ リサイズを変数のサイズに設定しま
す。
[Show in register view]
式がレジスタに対応する場合は、 選択されたレジスタ と と もに[Registers] ビューが表示されます。 これは、 以下である可能性があ り ま
す。
• 単一レジスタのみで構成されている式 ($pc)
• 現在レジスタに保持されている変数 (例えば、 変数 t はレジスタ R5 に保持されるこ とがあ り ます)。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-33ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Send to Selection]
このオプシ ョ ンを使用する と、 レジスタフ ィルタを [Expressions]ビューに追加できます。 特定の [Expressions] ビューに追加できるサブ
メニューを示します。
[format list] 式の値に使用できる形式のリ ス ト 。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Expression View] [Expressions] ビューの新しいインスタンスを表示します。
[Refresh] ビューを更新します。
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 これを使
用する と、 [Refresh] オプシ ョ ンを無効または有効にできま
す。
10.10.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • 関数ビュー (10-35 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• [Variables] ビュー (10-61 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-34ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.11 関数ビュー
このビューを使用する と、 以下を実行できます。
• ロード されたすべてのイ メージについて、 関数シンボルと関連付けられている ELF データを表示します。
• 選択したビューをフ リーズして実行中のターゲッ トによる情報の更新を抑制します。
図 10-13 関数ビュー
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] 関数の名前。
[Mangled Name]
関数の C++ の変換された名前
[Base Address]
関数エン ト リポイン ト
[Start Address]
関数の開始アドレス。
[End Address]
関数の終了アドレス。
[Size] 関数のサイズ ( バイ ト単位 )。
[Compilation Unit]
関数を含んでいるコンパイル単位の場所。
[Image] 関数を含んでいる ELF イ メージの場所。
デフォルトでは、 [Name]、 [Start Address]、 [End Address]、 [Compilation Unit]、 および
[Image] の列が表示されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-35ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.11.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Search] 現在のビュー内で関数のデータを検索します。
[Copy] 選択した関数をコピーします。
[Select All] ビュー内のすべての関数を選択します。
[Run to Selection]
選択したアドレスまで実行します。
[Set PC to Selection]
PC レジスタを選択した関数の開始アドレスに設定します。
[Show in Source]
ソースコードを使用できる場合は、 以下の手順に従います。
1. 必要に応じて、 C/C++ エディ タビューで対応するソースファ イル
を開きます。
2. 選択したアドレスに関連付けられているソース行を強調表示します。
[Show in Memory]
選択した関数のアドレスで始まる [Memory] ビューを表示します。
[Show in Disassembly]
選択した関数のアドレスで始まる [Disassembly] ビューを表示します。
[Toggle Breakpoint] 選択したアドレスのブレークポイン ト を設定または削除します。
[Resolve Breakpoint] 選択したアドレスの保留ブレークポイン ト を解決します。
[Enable Breakpoint] 選択したアドレスのブレークポイン ト を有効にします。
[Disable Breakpoint] 選択したアドレスのブレークポイン ト を無効にします。
[Toggle Trace Start Point]
選択したアドレスの ト レースの起点を設定または削除します。
[Toggle Trace Stop Point]
選択したアドレスの ト レースの終点を設定または削除します。
[Toggle Trace Trigger Point]
選択したアドレスの ト レースの ト リガポイン ト を開始します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-36ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Function View] [Functions] ビューの新しいインスタンスを表示します。
[Refresh] ビューを更新します。
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 これを使
用する と、 [Refresh] オプシ ョ ンを無効または有効にするこ と
もできます。
[Filter...] [Filter] ダイアログボッ クスを表示します。
10.11.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Functions Filter] ダイアログボッ クス (10-79 ページ)
• [Disassembly] ビュー (10-28 ページ)
• [Memory] ビュー (10-40 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-37ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.12 [History] ビュー
このビューを使用する と、 以下を実行できます。
• 現在のデバッグセッシ ョ ンで生成されたコマンドがすべて記載された一覧を表示します。
• ビューの内容をク リ アします。
• 選択したコマンドをスク リプ ト ファ イルに保存します。 [Save] をク リ ッ クす
る と、 スク リプ ト ファ イルをお気に入り リ ス トに追加するこ と もできます。 お気に入りは [Scripts] ビューに表示されます。
• [History] ビューのメ ッセージの自動スク ロール機能を有効または無効にしま
す。
図 10-14 [History] ビュー
注 このビューのデフォルト設定は、 [Preferences] ダイアログボッ クスの DS-5 デバッガ
設定によって制御されます (特定ファ イルのデフォルトの場所ど)。 これらの設定に
アクセスするには、 [Window] メニューの [Preferences...] を選択します。
10.12.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-38ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Exports the selected lines as a script]
[Save As] ダイアログボッ クスを表示して、 選択したコマンドをスク リ
プ ト ファ イルに保存します。
[Save As] ダイアログボッ クスの [Save] をク リ ッ クする と、 スク リプ
ト ファ イルをお気に入り リ ス トに追加するオプシ ョ ンを使用できます。 [OK] をク リ ッ ク して、 スク リプ ト をお気に入り リ ス トに追加します。 お気に入りは [Scripts] ビューに表示されます。
[Clear Console]
[History] ビューの内容をク リ アします。
[Toggles Scroll Lock]
[History] ビューのメ ッセージの自動スク ロール機能を有効または無効
にします。
[Copy] 選択したコマンドをコピーします。
[Select All] すべてのコマンドを選択します。
[Save the selected lines as a script...]
[Save As] ダイアログボッ クスを表示して、 選択したコマンドをスク リ
プ ト ファ イルに保存します。
[Save As] ダイアログボッ クスの [Save] をク リ ッ クする と、 スク リプ
ト ファ イルをお気に入り リ ス トに追加するオプシ ョ ンを使用できます。 [OK] をク リ ッ ク して、 スク リプ ト をお気に入り リ ス トに追加します。 お気に入りは [Scripts] ビューに表示されます。
[Execute selected lines]
選択したコマンドを実行します。
[New History View]
[History] ビューの新しいインスタンスを表示します。
10.12.2 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Commands] ビュー (10-20 ページ)
• [Scripts] ビュー (10-53 ページ)
• [Functions Filter] ダイアログボッ クス (10-79 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— DS-5 デバッガのコマンドの一覧 (アルファベッ ト順) (2-28 ページ) .• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-39ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.13 [Memory] ビュー
このビューを使用する と、 以下を実行できます。
• メモ リの内容を変更します。
• 絶対アドレスまたは式、 $pc のいずれかで [メモ リ ] ビューの開始アドレスを指
定します。 以前のエン ト リがド ロ ップダウン リ ス トに一覧表示されます。 Eclipse を終了する、 この リ ス トはク リ アされます。
• 開始アドレスのオフセッ ト値、 または [Registers] ビューから [Memory]ビューにド ラ ッグアンド ド ロ ップしてレジスタに保持されているアドレスのずれかで、 [Memory] ビューの画面サイズをバイ ト単位で指定します。
• メモ リセルの値の形式を指定します。 デフォルトは 16 進数です。
• [Memory] ビューのメモ リセルの幅を設定します。 デフォルトは 4 バイ トです。
• メモ リ値に相当する ASCII 文字を表示します。
• 選択したビューをフ リーズして、 実行中のターゲッ トによるビューの更新を抑制します。
図 10-15 [Memory] ビュー
[Memory] ビューには、 このビューでのメモ リの表示方法を変更するための機能の
みが用意されています。 バイ ト、 ハーフワード、 ワード、 またはダブルの読み出し /書き込み命令の使用を指定して、 [Memory] ビューのメモ リにアクセスするこ とは
できません。 メモ リ アクセスの幅を制御するは、 以下のコマンドを使用できます。
• メモ リ領域のアクセス幅を設定する memory コマンドに続けて、 これらのアクセ
ス幅に従ってメモ リ を読み出して内容を表示する x コマンド
• 明示的なアクセス幅を使ってメモ リに書き込む memory set コマンド
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-40ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.13.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Back]、 [Forward]
履歴一覧内を移動します。
[History] [Address] フ ィールドで指定したアドレスおよび式がド ロ ップダウン
ボッ クスに追加され、 履歴一覧をク リ アするか Eclipse を終了するまで
保存されます。 今後の使用に備えて式を保持する場合は、 式を
[Expressions] ビューに追加して ください。
[Display Width]
ク リ ッ ク して、 [Memory] ビューのメモ リセルの幅を順に切り替えて表
示するか、 ド ロ ップダウン メニューから幅を選択します。 デフォルトは 4 バイ トです。
[Format] ク リ ッ ク して、 メモ リセルのフォーマッ ト を順に切り替えて表示する
か、 ド ロ ップダウン メニューからフォーマッ ト を選択します。 デフォル
トは 16 進数です。
[Showing characters - click to hide the character display] , [Not showing characters - click to show the character display]
メモ リ値に相当する ASCII 文字の表示が切り替わり ます。
[Address] フ ィールド
ターゲッ ト メモ リの表示を開始するアドレスを入力します。 または、 ア
ドレスを評価する式を入力するこ と もできます ($PC+256)。
指定したアドレスおよび式はド ロ ップダウン リ ス トに追加され、 Eclipse を終了するまで保存されます。 今後の使用に備えて式を保持する場合
は、 を [Expressions] ビューに追加して ください。
コンテキス ト メニューのオプシ ョ ンは、 このフ ィールドの編集に使用できます。
[Size] フ ィールド 表示するバイ ト数。
コンテキス ト メニューのオプシ ョ ンは、 このフ ィールドの編集に使用できます。
[Search] デバッグ情報内でシンボルを検索します。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Memory View] [Memory] ビューの新しいインスタンスを表示します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-41ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Show Tooltips] メモ リセル値のヒン トの表示が切り替わり ます。
[Byte Order] メモ リのバイ ト順序を選択します。 デフォルトは [Auto(LE)]です。
[Clear History] [History] ド ロ ップダウンボッ クス内のアドレスおよび式の一
覧をク リ アします。
[Import Memory] ファ イルからデータを読み出し、 メモ リに書き込みます。
[Export Memory] メモ リからデータを読み出して、 ファ イルに書き込みます。
[Refresh] ビューを更新します。
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 また、 こ
れを使用する と、 [Address] フ ィールド と [Size] フ ィールド
および [Refresh] オプシ ョ ンを無効または有効にできます。
コンテキス ト メニューの編集オプシ ョ ン
編集するためにメモ リセル値、 [Address] フ ィールド、 または [Size]フ ィールドを選択した場合、 以下のオプシ ョ ンがコンテキス ト メニューで利できます。
[Cut] 選択した値をコピーして削除します。
[Copy] 選択した値をコピーします。
[Paste] 以前に切り取ったまたはコピーした値を、 選択したメモ リセ
ルまたはフ ィールドに貼り付けます。
[Delete] 選択した値を削除します。
[Undo] 選択したメモ リセルまたはフ ィールドに対して行った 後の
変更を元に戻します。 [Address] フ ィールドではこのオプ
シ ョ ンは無効です。
[Select All] すべてのアドレスを選択します。
[Toggle Breakpoint] 選択したアドレスのブレークポイン ト を設定または
削除します。
[Resolve Breakpoint] 選択したアドレスの保留ブレークポイン ト を解決
します。
[Enable Breakpoint] 選択したアドレスのブレークポイン ト を有効にし
ます。
[Disable Breakpoint] 選択したアドレスのブレークポイン ト を無効にし
ます。
[Toggle Trace Start Point] 選択したアドレスの ト レースの起点を設定または削除します。
[Toggle Trace Stop Point] 選択したアドレスの ト レースの終点を設定または削除します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-42ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Toggle Trace Trigger Point] 選択したアドレスの ト レースの ト リガポイン ト を開始します。
10.13.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Export memory] ダイアログボッ クス (10-64 ページ)
• [Import memory] ダイアログボッ クス (10-66 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— dump (2-68 ページ)
— memory set (2-129 ページ)
— restore (2-146 ページ)
— x (2-227 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-43ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.14 [Modules] ビュー
このビューは、 Linux ターゲッ トに接続した場合にのみ表示されます。 このビューを
使用する と、 以下を実行できます。
• アプリ ケーシ ョ ンによって使用される共有ライブラ リの表ビューを表示します。
• 動的にロード されたオペレーティングシステム (OS) モジュールの表ビューを
表示します。
• 特定のモジュールまたは共有ライブラ リのデバッグ情報をロードおよびアンロード します。
図 10-16 共有ライブラリを表示している [Modules] ビュー
図 10-17 オペレーティングシステムモジュールを表示している [Modules] ビュー
注 ロード可能なモジュールを検出するには、 デバッガ内で接続が確立しており、 OS サポートが有効になっている必要があ り ます。 Linux カーネルイ メージがデバッガに
ロード される と、 OS サポートは自動的に有効になり ます。 ただし、 set os コマンドを
使用して手動でこれを制御するこ と もできます。
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] ターゲッ トのコンポーネン トの名前および場所を表示します。
[Symbols] シンボルが各オブジェク トに対して現在ロード されているかど うかを表
示します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-44ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Address] オブジェク トのロードアドレスを表示します。
[Size] オブジェク トのサイズを表示します。
[Kind] コンポーネン トの種類を表示します (共有ライブラ リ または OS モジュールなど)。
[Host File] ホス ト ワークステーシ ョ ン上のコンポーネン トの名前と場所を表示しま
す。
デフォルトでは、 [Name]、 [Symbols]、 [Address]、 [Kind]、 および [Host File] の列が表示
されます。
10.14.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Refresh]
ビューを更新します。
[Copy] 選択したデータをコピーします。
[Select All] 表示されているすべてのデータを選択します。
[Load Symbols]
デバッグ情報をホス ト ファ イル列に表示されたソースファ イルからデバッガにロード します。 ホス ト ファ イルが不明な場合 (ファ イルがロー
ド される前)、 このオプシ ョ ンは無効です。
[Add Symbol File...]
デバッガに必要なデバッグ情報を含むファ イルをホス ト ワークステーシ ョ ンから選択できるダイアログボッ クスを開きます。
[Discard Symbols]
選択したファイルに関するデバッグ情報を破棄します。
[Show in Memory]
選択したオブジェク トのロードアドレスで始まる [Memory] ビューを
表示します。
[Show in Disassembly]
選択したオブジェク トのロードアドレスで始まる [Disassembly] ビュー
を表示します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-45ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.14.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— add-symbol-file (2-32 ページ)
— discard-symbol-file (2-65 ページ)
— file, symbol-file (2-75 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-46ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.15 [Registers] ビュー
このビューを使用する と、 以下を実行できます。
• ターゲッ ト レジスタの内容を表示します。
• 書き込み可能なレジスタの値を変更します。 レジスタ値を変更する と、 レジス
タ値の背景が黄色に変わり ます。
• レジスタ値の表示形式を変更します。 プログラムステータスレジスタ (PSR)では、 各ビッ ト を使って形式を設定できます。
• 選択したビューをフ リーズして実行中のターゲッ トによる値の更新を抑制します。
• R3 などのレジスタに保持されているアドレスを、 [Registers] ビューから
[Memory] ビューまたは [Disassembly] ビューのいずれかにド ラ ッグアンド ド
ロプして、 そのアドレスのメモ リ を表示した りそのアドレスから逆アセンブルします。
図 10-18 [Registers] ビュー
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] レジスタの名前。
$register_name を使用してレジスタを参照します。 PSR などのビッ ト
フ ィールドがあるレジスタを参照するには、 $register_name.bitfield_name を指定します。 例えば、 $CPSR の M ビッ ト フ ィールドの値を出力するに
は、 [Commands] ビューに以下のコマンドを入力して ください。
print $CPSR.M$1 = USR
[Value] レジスタの値。 影付きの背景は、 値が変更されたこ とを示します。
ビューをフ リーズさせる と、 レジスタ値を変更できません。
[Type] レジスタ値の型。
[Count] 配列またはポインタ要素の数。
[Size] レジスタのサイズ (ビッ ト単位)。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-47ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Location] PSR のビッ ト フ ィールドのレジスタまたはビッ トマップの名前。 例えば、
CSPR のビッ ト フ ィールド M は、 $CPSR[0..4] と表示されます。
デフォルトでは、 [Name]、 [Value]、 および [Size] の列が表示されます。
10.15.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Search] 現在のビュー内でレジスタのデータを検索します。
[Copy] 選択したレジスタをコピーします。 PSR のビッ ト フ ィールドをコピーす
るには、 まず PSR を拡張する必要があ り ます。
これは、 選択したレジスタをテキス トエディ タにコピーして、 別の場所で実行が停止したと きに値を比較する場合に便利です。
[Select All] ビューで現在拡張されているすべてのレジスタを選択します。
[Show Memory Pointed to By register_name]
このオプシ ョ ンを有効にする と、 レジスタに保持されているアドレスで始まる [Memory] ビューが表示されます。
[Show Disassembly Pointed to By register_name]
このオプシ ョ ンを有効にする と、 レジスタに保持されているアドレスで始まる [Disassembly] ビューが表示されます。
[Send to Selection]
このオプシ ョ ンを使用する と、 レジスタフ ィルタを [Expressions]ビューに追加できます。 特定の [Expressions] ビューに追加できるサブ
メニューを示します。
[format list] レジスタ値に使用できる形式のリ ス ト 。 デフォルトは [Hexadecimal]です。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Register View] [Registers] ビューの新しいインスタンスを作成します。
[Refresh] ビューを更新します。
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 これを使
用する と、 [Refresh] オプシ ョ ンを無効または有効にするこ と
もできます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-48ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
コンテキス ト メニューの編集オプシ ョ ン
編集するためにレジスタ値を選択した場合、 以下のオプシ ョ ンがコンテキス ト メニューで利用できます。
[Cut] 選択した値をコピーして削除します。
[Copy] 選択した値をコピーします。
[Paste] 以前に切り取ったまたはコピーした値を、 選択したレジスタ
値に貼り付けます。
[Delete] 選択した値を削除します。
[Undo] 選択した値に対して行った 後の変更を元に戻します。
10.15.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念
• TrustZone 対応ターゲッ トのデバッグについて (6-19 ページ) .
参照 • DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-49ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.16 [Screen] ビュー
このビューを使用する と、 以下を実行できます。
• ターゲッ ト上の画面バッファの内容を表示します。 このビューは、 ターゲッ ト
が停止したと きにのみ更新されます。
• ターゲッ トに適した画面バッファパラ メータを設定します。 :
図 10-19 BeagleBoard で動作する Fireworks の例の画面バッファパラ メータ
• 選択したビューをフ リーズして、 次に停止したと きに実行中のターゲッ トによる画面表示の更新を抑制します。
図 10-20 [Screen] ビュー
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-50ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.16.1 ツールバーオプシ ョ ン
以下のツールバーオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Refresh]
ビューを更新します。
[Set Screen Buffer Parameters]
[Screen Buffer Parameters] ダイアログボッ クスを表示します。 ダイアロ
グボッ クスには以下のパラ メータがあ り ます。
Base Address 画面バッファのベースアドレスを設定します。
Screen Width 画面の幅をピクセル単位で設定します。
Screen Height 画面の高さをピクセル単位で設定します。
Scan Line Alignment 各スキャンラインに必要なバイ ト アライン メン ト を設定します。
Pixel Type ピクセルのタイプを選択します。
Pixel Byte Order データ内のピクセルのバイ ト順序を選択します。
[Apply] をク リ ッ ク して設定を保存し、 ダイアログボッ クスを閉じま
す。
[Cancel] をク リ ッ ク して、 保存せずにダイアログボッ クスを閉じます。
[Freeze Data]
現在のビュー内のデータのフ リーズを切り替えます。 これを使用する
と、 [Refresh] オプシ ョ ンを無効または有効にするこ と もできます。
[New Screen Buffer View]
[Screen] ビューの新しいインスタンスを作成します。
[Screen] ビューはデフォルトでは表示されません。 このビューを追加するには、 以
下の手順に従います。
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
2. [Window] → [Show View] を選択して [Show View] ダイアログボッ クスを開
きます。
3. [Screen] ビューを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-51ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.16.2 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-52ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.17 [Scripts] ビュー
このビューには、 お気に入り スク リプ トが含まれています。 複数のお気に入り スク リ
プ ト を実行、 編集、 または削除できます。 [History] ビューコマンドを保存した場合
は、 スク リプ ト をこのビューに追加できます。
複数の選択がビューに一覧表示された順に実行されます。 順序を変更するには、 スク
リプ ト をビューから削除して、 希望する順序でインポート します。
図 10-21 [Scripts] ビュー
注 このビューのデフォルト設定は、 [Preferences] ダイアログボッ クスの DS-5 デバッガ
設定によって制御されます (ス ク リプ ト ファ イルのデフォルト場所など)。 これらの
設定にアクセスするには、 [Window] メニューの [Preferences...] を選択します。
10.17.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Creates a new script]
新しい空のスク リプ ト を作成します。 作成した後にスク リプ トの内容を
指定するには、 スク リプ ト を選択して [Edit Selected Script] をク リ ッ
ク します。
[Execute Selected Scripts]
選択したスク リプ ト を実行します。 複数のスク リプ ト を選択した場合、
デバッガは [Scripts] ビューに一覧表示されている順にスク リプ ト を実
行ます。
[Edit Selected Scripts]
選択したスク リプ ト を編集できます。 スク リプ トは C/C++ エディ タで開
かれます。
[Delete Selected Scripts]
選択したスク リプ ト をお気に入り リ ス トから削除します。 また、 スク リ
プ ト をファ イルシステムから削除しよ う と します。
[Import Script...]
スク リプ ト ファ イルをインポート してお気に入り リ ス トに追加します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-53ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Cut] 選択したスク リプ ト ファ イル名をコピーして削除します。 また、 スク リ
プ ト をファ イルシステムから削除しよ う と します。
[Copy] 選択したスク リプ ト をコピーします。
[Paste] 以前に切り取ったまたはコピーしたスク リプ ト ファ イル名を貼り付けま
す。
ファ イルを切り取り操作の一部と してファ イルシステムから削除した場合、 ファ イルの内容は復元されません。 ファ イルを編集して新しいコマ
ンドを追加する必要があ り ます。
ファ イルを切り取り操作の一部と して削除しなかった場合、 デバッガはファイル名をファイルシステムのファイルにリ ンク します。
[Delete] 選択したスク リプ ト をお気に入り リ ス トから削除します。 また、 スク リ
プ ト をファ イルシステムから削除しよ う と します。
[Select All] すべてのスク リプ ト ファ イルを選択します。
10.17.2 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • C/C++ エディ タ (10-14 ページ)
• [Commands] ビュー (10-20 ページ)
• [History] ビュー (10-38 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-54ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.18 [Target] ビュー
このビューでは、 以下のよ うなターゲッ トでサポート されるデバッグ機能を検証できます。
• サポート されているブレークポイン ト タイプ
• サポート されている リセッ ト タイプ
• サポート されている メモ リ アクセスタイプ
すべての機能は読み出し専用です。
図 10-22 [Target] ビュー
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] ターゲッ ト機能の名前。
[Value] ターゲッ ト機能の値。
[Key] ターゲッ ト機能の名前。 これは、 [Commands] ビューのいくつかのコマ
ンドで使用されます。
[Description] ターゲッ ト機能の説明。
デフォルトでは、 [Name]、 [Value]、 および [Description] の列が表示されます。
[Target] ビューはデフォルトでは表示されません。 このビューを追加するには、 以下
の手順に従います。
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
2. [Window] → [Show View] を選択して [Show View] ダイアログボッ クスを開
きます。
3. [Target] ビューを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-55ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.18.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Refresh the Target Capabilities]
ビューを更新します。
[Copy] 選択した機能をコピーします。 メ モ リ機能などのグループの機能をコピー
するには、 まずそのグループを拡張する必要があ り ます。
このオプシ ョ ンは、 選択した機能をテキス トエディ タにコピーして、 将来の参照に備えてその機能を保存する場合に便利です。
[Select All] ビューで現在拡張されているすべての機能を選択します。
10.18.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Breakpoints] ビュー (10-9 ページ)
• [Memory] ビュー (10-40 ページ)
• [App Console] ビュー (10-3 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-56ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.19 [Trace] ビュー
ト レースがキャプチャされた場合、 デバッガは情報を ト レースス ト リームから抽出して伸張し、 実行されたコードの完全な逆アセンブリ をシンボと と もに提供します。
このビューには、 ナビゲーシ ョ ンタイムラインを使用した関数の実行を表示するグラフ ィカルナビゲーシ ョ ンのグラフが表示されます。 さ らに、 逆アセンブ リ ト レース
には、 アドレスおよび選択されている場合は命令に関連付けられている関数呼び出しが表示されます。 グラフの特定の時間をク リ ッ クする と、 [Disassembly] ビューを
同期化します。
グラフの左列には、 合計ト レースの各関数に対して割合が表示されます。 例えば、 合
計 1000 個の命令が実行され、これらの命令の 300 個が myFunction() に関連付けられて
いる場合、 この関数は 30% と表示されます。
ナビゲーシ ョ ンタイムラインで、 色分けは、 実行される命令および各関数がタイムラインごとに実行する命令の量を示す " ヒート " マップです。 い赤色は命令が多いこ
とを示し、 明るい黄色は命令が少ないこ とを示しています。 ただし、 1:1 のスケール
での配色は、 濃い赤色がメモ リ アクセの命令、 オレンジ色が分岐命令、 明るい緑色が他のすべての命令を表示するよ うに変更されます。
図 10-23 スケールが 1:1 のト レースビュー
[Trace] ビューはデフォルトでは表示されない場合があ り ます。 このビューを追加す
るには
1. DS-5 デバッグパースペクティブで作業しているこ とを確認します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-57ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
2. [Window] → [Show View] を選択して [Show View] ダイアログボッ クスを開
きます。
3. [Trace] ビューを選択します。
ト レースビューには複数のタブが含まれています。
• グラフ ィカルタイムラインと逆アセンブリ を示すト レースタブ
10.19.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Show Next Match]
ナビゲーシ ョ ングラフおよび逆アセンブリ ト レースのフォーカスを、 選択した関数または命令が次に一致する箇所に移動します。
[Show Previous Match]
ナビゲーシ ョ ングラフおよび逆アセンブリ ト レースのフォーカスを、 選択した関数または命令が直前に一致する箇所に移動します。
[Don’ t mark other occurrences - click to start marking]、 [Mark other occurrences - click to stop marking]
関数ト レースが選択されている場合は、 影付きで強調表示されている選択した関数のすべての出現箇所をマークします。 命令ト レースが選択さ
れている場合、 このオプシ ョ ンは無効です。
[Clear Trace] ト レースバッファ と ト レースビューに現在含まれている未加工ト レー
スデータをク リ アします。
[Showing instruction trace - click to switch to functions]、[Showing function trace - click to switch to instructions]
逆アセンブリ ト レース、 命令ト レース、 関数ト レース、 を切り替えます。
[Export Trace Report]
[Export Trace Report] ダイアログボッ クスを表示して、 ト レースデータ
をファ イルに保存します。
Home キー 有効にする と、 ト レースビューが ト レースバッファの先頭に移動しま
す。 ト レースバッファが小さすぎる場合は、 変化が見えない可能性があ
り ます。
[Page Back] このオプシ ョ ンを有効にする と、 [Trace] ビューを 1 ページ前に戻しま
す。 [Set Maximum Instruction Depth] 設定を変更して、 ページサイズ
を変更できます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-58ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Page Forward]
このオプシ ョ ンを有効にする と、 [Trace] ビューを 1 ページ先に移動さ
せます。 [Set Maximum Instruction Depth] 設定を変更して、 ページサ
イズを変更できます。
End キー
有効にする と、 ト レースビューが ト レースバッファの末尾に移動します。 ト レースバッファが小さすぎる場合は、 変化が見えない可能性があ
り ます。
[Switch between navigation resolutions]
ナビゲーシ ョ ングラフのタイムラインの解像度を変更します。
[Switch between alternate views]
ビューにナビゲーシ ョ ングラフ、 逆アセンブリ ト レースまたはその両方が表示されるよ うに変更します。
[Focus Here] リ ス トの上部には、 選択した時間帯で実行されている関数が表示され
ます。 残りの関数は、 時間内に選択したポイン トの後で実行した順序で
一覧表示されます。 時間内のポイン トの後に表示されない関数は末尾に
配置され、 合計時間の順に配置されます。
[Order By Total Time]
関数を関数内でかかった合計時間順に表示します。 これがデフォルトの
順序です。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Trace View] [Trace] ビューの新しいインスタンスを表示します。
[Copy] 選択した命令ト レースをコピーします。
[Set Maximum Instruction Depth] 逆アセンブリ ト レースに表示できる 大命令数を入力するダイアログボッ クスを表示します。 命令数は、 1000 から 100 万個
の命令の範囲内に収め必要があ り ます。
[Index From Start] バッファの先頭からの、 デコード された命令数
[Index From Middle] バッファの中央からの、 デコード された命令数
[Index From End] バッファの末尾からの、 デコード された命令数
[Find Trigger Packet] ト レースキャプチャバッファで ト リガパケッ ト を検索できます。
[Show in Disassembly] 選択した命令のアドレスで始まる [Disassembly] ビューを表
示します。
[Refresh] ビューを更新します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-59ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。
10.19.2 関連項目
タスク
• ト レースポイン トの設定 (4-15 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念 • ト レースサポートについて (5-7 ページ)
参照 • ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Disassembly] ビュー (10-28 ページ)
• 関数ビュー (10-35 ページ)
• [Memory] ビュー (10-40 ページ)
• [Export trace report] ダイアログボッ クス (10-68 ページ)
• [ ト レースポイン トのプロパティ] ダイアログボッ クス (10-76 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-60ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.20 [Variables] ビュー
このビューを使用する と、 以下を実行できます。
• 現在有効範囲にある変数の内容を表示します。
• 現在有効範囲にある変数の値を変更します。
• 選択したビューをフ リーズして実行中のターゲッ トによる値の更新を抑制します。
図 10-24 [Variables] ビュー
列ヘッダを右ク リ ッ ク して表示する列を選択します。 以下の列があ り ます。
[Name] 変数の名前。
[Value] 変数の値。
読み出し専用の値は、 灰色の背景で表示されます。 他の色は、 その値が
編集可能であるこ とを示します。
編集できる値は、 初は白い背景で表示されます。 値が変更された場
合、 ステップ実行などのデバッグアクシ ョ ンを実行するか、 値を直接編集して値が変更された場合、 背景は黄色に変わり ます。
ビューをフ リーズする と、 値を変更できません。
[Type] 変数の型。
[Count] 配列またはポインタ要素の数。
[Size] 変数のサイズ (ビッ ト単位)。
[Location] 変数のアドレス。
デフォルトでは、 すべての列が表示されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-61ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.20.1 ツールバーとコンテキスト メニューのオプシ ョ ン
ツールバーまたはコンテキス ト メニューには、 以下のオプシ ョ ンが用意されています。
[Linked : context]
このビューを [Debug Control] ビューで選択した接続にリ ンク します。 これがデフォルトです。 または、 ビューを特定の接続にリ ンクするこ と
もできます。 リ ンクする接続がド ロ ップダウン リ ス トに表示されていな
い場合は、 まず [Debug Control] ビューで接続を選択する必要があ り ま
す。
[Search] 現在のビュー内で変数のデータを検索します。
[Copy] 選択した変数をコピーします。 構造体または配列などの項目の内容をコ
ピーするには、 まずその項目を拡張する必要があ り ます。
このオプシ ョ ンは、 選択した変数をテキス トエディ タにコピーして、 別の場所で実行が停止したと きに値を比較する場合に便利です。
[Select All] ビューで現在拡張されているすべての機能を選択します。
[Show in Memory]
このオプシ ョ ンを有効にする と、 以下のいずれかに対して設定されたアドレス と と もに [Memory] ビューが表示されます。
• 変数が配列のアドレス、 &name のアドレスに変換されている場合は、
選択した変数の値
• 配列の名前、 name の変数の場所
sizeof キーワードを使用して、 メモ リサイズを変数のサイズに設定しま
す。
[Show in Registers]
選択した変数がレジスタに現在保持されている場合は、 選択したそのレジスタ と と もに [Registers] ビューが表示されます。 例えば、 変数 t はレジスタ R5 に保持される可能性があ り ます。
[Show Dereference in Memory]
選択した変数がポインタである場合は、 メモ リ内で変数が指しているアドレス と と もに [Memory] ビューが表示されます。
[Send to Selection]
変数フ ィルタを [Expressions] ビューに追加できます。 特定の
[Expressions] ビューに追加できるサブメニューを表示します。
[format list] 変数値に使用できる形式のリ ス ト 。 デフォルトは [Unsigned Decimal]です。
[View Menu] 以下の [View Menu] オプシ ョ ンが用意されています。
[New Variable View] [Variables] ビューの新しいインスタンスを表示します。
[Refresh] ビューを更新します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-62ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Freeze Data] 現在のビュー内のデータのフ リーズを切り替えます。 これを使
用する と、 [Refresh Variable View] オプシ ョ ンを無効または
有効にできます。 データがフ リーズされている場合は、 変数の
値を変更するこ と もできます。
配列などの項目を拡張する前に初めてデータをフ リーズした場合、 ビューは項目を [Pending...] と表示する可能性があ り ま
す。 項目を表示するには、 データをアンフ リーズします。
コンテキス ト メニューの編集オプシ ョ ン
編集するために変数の値を選択した場合、 以下のオプシ ョ ンがコンテキス ト メニューで利用できます。
[Cut] 選択した値をコピーして削除します。
[Copy] 選択した値をコピーします。
[Paste] 以前に切り取ったまたはコピーした値を、 選択した変数の値
に貼り付けます。
[Delete] 選択した値を削除します。
[Undo] 選択した値に対して行った 後の変更を元に戻します。
[Right to left reading order] 選択した変数の値の読み出し順序を左ぞろえまたは右ぞろえに設定します。
[Show unicode control characters] 選択した変数値の Unicode 制御文字を表示します。
[Insert unicode control character] Unicode 制御文字を選択して、 選択した変数の値に挿入しま
す。
10.20.2 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Expressions] ビュー (10-32 ページ)
• 関数ビュー (10-35 ページ)
• [Memory] ビュー (10-40 ページ)
• [Registers] ビュー (10-47 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-63ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.21 [Export memory] ダイアログボックス
このダイアログボッ クスでは、 特定のメモ リ領域からのデータを含んでいるテキスト ファ イルを生成できます。
[Memory Bounds]
メモ リ領域を指定します。
開始ア ド レ ス メモ リの開始アドレスを指定します。
終了ア ド レ ス メモ リの終了アドレス (指定したアドレスを含む)を指定します。
バイ ト単位の長さ バイ ト数を指定します。
[Output Format]
出力形式を以下の中から指定します。
• バイナリ。 これがデフォルトです。)
• Intel Hex 32 ビッ ト形式。
• Motorola 32 ビッ ト形式 (S レコード)。
• バイ ト指向 16 進形式 (Verilog メモ リモデル)
[Export Filename]
所定のフ ィールドに出力ファ イルの現在の場所を入力するか、 以下のいずれかをク リ ッ ク します。
• [File System...] (外部フォルダに含まれている出力ファ イルを検索
する場合)
• [Workspace...] (ワークスペースプロジェク トに含まれている出力
ファイルを検索する場合)
図 10-25 [Memory Exporter] ダイアログボックス
10.21.1 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-64ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Import memory] ダイアログボッ クス (10-66 ページ)
• [Memory] ビュー (10-40 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-65ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.22 [Import memory] ダイアログボックス
このダイアログボッ クスでは、 特定のメモ リ領域からのデータを含んでいるテキスト ファ イルを生成できます。
[Offset to Embedded Address]
メモ リに書き込む前にイ メージ内のすべてのアドレスに加算するオフセッ ト を指定します。 一部のイ メージ形式には書き込むアドレスが含ま
れておらず、 その場合、 オフセッ トはイ メージが書き込まれる絶対アドレスです。
[Memory Limit]
インポートする特定のメモ リ領域を定義できます。
[Limit to memory range] アドレス範囲を指定する と きに選択します。
[Start] 書き込み可能な 小アドレスを指定します。 このアドレスよ り
前のデータは書き込まれません。 アドレスを指定しない場合、
デフォルトはアド ス 0 です。
End キー 書き込み可能な 大アドレスを指定します。 このアドレスよ り
後のデータは書き込まれません。 アドレスを指定しない場合、
デフォルトはアド ス空間の末尾です。
[Import Filename]
ファ イル形式がバイナリ ファ イルの場合は、 [Import file as binary image] を選択します。
所定のフ ィールドに出力ファ イルの現在の場所を入力するか、 以下のいずれかをク リ ッ ク します。
• [File System...] (外部フォルダに含まれている出力ファ イルを検索
する場合)
• [Workspace...] (ワークスペースプロジェク トに含まれている出力
ファイルを検索する場合)
図 10-26 [Memory Importer] ダイアログボックス
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-66ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.22.1 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Export memory] ダイアログボッ クス (10-64 ページ)
• [Memory] ビュー (10-40 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-67ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.23 [Export trace report] ダイアログボックス
このダイアログボッ クスでは、 ト レースレポート を作成できます。
[Select source for trace report]
以下の必要な ト レースデータを選択します。
[Use trace view as report source] [Trace] ビューに現在表示されている命令。
[Use trace buffer as report source] ト レースバッファに現在含まれている未加工ト レースデータ。
注 範囲を指定する と きは、 範囲が十分に広いこ とを確認します。
確認しないと、 ト レース出力を生成できない可能性があ り ます。 これは、 バッファ内の未加工のト レースはパッ ク形式だか
らです。
[Report Format]
レポートは以下のもので構成されています。
[Output Format] 出力形式を選択します。
[Include column headers] レポートの 1 行目に列ヘッダを追加できます。
[Select columns to export] レポートの ト レースデータをフ ィルタできます。
[Save as] レポートの場所およびファイル名を入力します。
[Browse] ファ イルシステムのレポートの場所を選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-68ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-27 [Export trace report] ダイアログボックス
10.23.1 関連項目
タスク
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
概念 • ト レースサポートについて (5-7 ページ)
参照 • [Trace] ビュー (10-57 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-69ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.24 [Breakpoint properties] ダイアログボックス
このダイアログボッ クスを使用する と、 以下を実行できます。
• 選択したブレークポイン トのプロパティを表示します。
• 特定のブレークポイン トに対して条件式を設定します。
• 特定のブレークポイン トに対して無視する回数を設定します。
• 選択したブレークポイン トに達したと きに実行するスク リプ ト ファ イルを指定します。
• すべてのブレークポイン トのアクシ ョ ンの完了時に自動的に実行を継続します。
• ブレークポイン トのアクシ ョ ンを特定のスレッ ド またはプロセッサに割り当てます (可能な場合)。
図 10-28 [Breakpoint properties] ダイアログボックス
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-70ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.24.1 ブレークポイン ト情報
ブレークポイン ト情報には、 ブレークポイン トの基本的なプロパティが表示されます。 以下のプロパティがあ り ます。
[Descrption] [Breakpoints] ビューに表示されるブレークポイン トの説明。 以下のも
ので構成されます。
• ブレークポイン トが設定されている関数の名前および関数の開始位置からのバイ ト数。 例えば、 accumulate()+52 は、 ブレークポイン
トが accumulate() 関数の開始位置から 52 バイ ト離れているこ とを
示します。
• ソースファ イルが利用できる場合は、 ブレークポイン トが設定されているファ イルのファイル名および行番号 (threads.c:115)。
• ブレークポイン トの ID 番号 (#N)。 場合によっては、 for ループ内
など、 ブレークポイン トが多数のサブブレークポイン トで構成されている可能性があ り ます。 これらは N.n と して識別されます。 N は親の数です。 このダイアログボッ クスのサブブレークポイン トの
説明は、 以下のよ うに表示されます。
main()+132sub-breakpoint ofmain()+132 @ threads.c:56 [#14 ARM] (threads)
• ブレークポイン トのアドレスの命令タイプ (ARM または Thumb)。
• 設定されている場合は、 ignore の回数。 表示形式は以下のとおりで
す。
ignore = num/count
初は num は count に等し く、 ゼロに達するまで各パスに対してデ
ク リ メン ト します。
count は、 ignore 回数に対して指定した値です。
• ブレークポイン トに達するたびにインク リ メ ン トする hits 回数。 これは、 初めてブレークポイン トに達する と表示されます。 ignore 回数を設定した場合、hits 回数は ignore 回数がゼロに達するまでイ
ンク リ メ ン ト を開始しません。
• 指定した停止条件 ((i==3))。
• イ メージの名前。
:accumulate()+52 @ threads.c:115 [#1 ARM, ignore = 3/3, 3 hits, (i==3)] (threads)
[Location] ブレークポイン トが設定されているアドレスを含むソースファ イルの場
所。 以下に例を示します。
C:/Myprojects/Eclipse/workspace_ds5/threads/threads.c:115.0
ソースファ イルが使用できない場合は、 [Unknown] が表示されます。
[Type] これは、 以下のこ とを示します。
• ブレークポイン ト アドレスのコードにソースファ イルが使用できるかど うかを示します。 使用できる場合は [Source Level]、 使用で
きない場合は [Address Level] が表示されます。
• ブレークポイン トが共有オブジェク トのコードにある場合、 [Auto]
は、 その共有オブジェク トがロード されたと きにブレークポイントが自動的に設定されるこ とを示します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-71ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• ブレークポイン トが [Active] の場合、 [Software Breakpoint] または
[Hardware Breakpoint] のいずれかのブレークポイン トのタイプ。
• ブレークポイン トのアドレスの命令タイプ (ARM または Thumb)。:
Source Level Software Breakpoint [ARM]
[State] 以下のいずれかを示します。
[Active] ブレークポイン トのアドレスを含むイ メージまたは共有オブ
ジェク トがロード され、 ブレークポイン トが設定されます。
[No Connection] ブレークポイン トは、 接続されていないターゲッ ト上のアプリ ケーシ ョ ン内にあ り ます。
[Pending] ブレークポイン トのアドレスを含むイ メージまたは共有オブ
ジェク トは、 まだロード されていません。 イ メージまたは共有
オブジェク トがロード される と、 ブレークポイン トはアクティブになり ます。
[Address] アドレスを有効または無効にできるチェッ クボッ クス と と もに、 複数の
ブレークポイン ト またはサブブレークポイン トのアドレスを表示するダイログボッ クス。
[Temporary] これがテンポラ リブレークポイン トである場合は [true] が表示されま
す。 テンポラ リブレークポイン トでない場合は [false] が表示されます。
10.24.2 ブレークポイン トのオプシ ョ ン
以下のオプシ ョ ンを設定できます。
[Stop Condition]
選択したブレークポイン トの C 形式の条件式を指定します。 例えば、 x の値が 10 のと きにブレークポイン ト をアクティブにするには、 x==10 を指定します。
[Ignore Count]
選択したブレークポイン ト をアクティブにする前に、 無視する回数を指定します。
ゼロに達するまで、 デバッガは各パスのカウンタをデク リ メン ト します。 以下に例を示します。
main()+140 @ threads.c:51 [#1 ARM, ignore = 2/3] (threads)
値がゼロに達したと き、 ブレークポイン トはアクティブにな り ます。 その後の各パスによ り、 ブレークポイン トはアクティブにな り ます。
コンテキス ト メニューの [Reset Ignore Count] オプシ ョ ンを選択して、
カウンタを設定した値にリセッ ト し、 アクティブ化を再度遅延します。
[On break, run script]
選択したブレークポイン トがアクティブになったと きに実行するスク リプ ト ファ イルを指定します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-72ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
注 スク リプ トで使用されるコマンドが、 ブレークポイン トで実行されるこ
とに注意して ください。 例えば、 スク リプ ト内で quit コマンドを使用す
る と、 ブレークポイン トに達したと きにデバッガがターゲッ トから切断されます。
[Continue Execution]
ブレークポイン トがアクティブになった後にターゲッ トの実行を継続する場合は、 このオプシ ョ ンを選択します。
[Silent]
選択したブレークポイン トの停止メ ッセージの出力を制御します。
[Break on Selected Threads or Cores]
このオプシ ョ ンは、 特定のスレッ ド またはプロセッサに対するブレークポイン ト を設定する と きに選択します。 スレッ ド またはプロセッサが使
用できない場合、 このオプシ ョ ンは無効です。
ブレークポイン トがアクティブになったと き、 デバッガは以下の処理を行います。
• [Commands] ビューにメ ッセージを表示します。 以下に例を示します。
Execution stopped at breakpoint 1: 0x00008850In thread 1 (OS thread id 1078)0x00008850 51,0 thread_app_data[t].thread = t;
• ブレークポイン トのヒ ッ ト回数をインク リ メ ン ト します。 以下に例を示します。
main()+140 @ threads.c:51 [#1 ARM, ignore = 0/3, 2 hits] (threads)
10.24.3 関連項目
タスク
• 実行ブレークポイン トの設定 (4-10 ページ)
• 条件ブレークポイン トの設定 (4-16 ページ)
• ブレークポイン ト と ウォ ッチポイン トの保留 (4-22 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Breakpoints] ビュー (10-9 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— clear (2-49 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— ignore (2-84 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-73ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
— set breakpoint (2-156 ページ)
— silence (2-202 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-74ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.25 [Watchpoint properties] ダイアログボックス
このダイアログボッ クスを使用する と、 以下を実行できます。
• 選択したウォッチポイン トのプロパティを表示します。
• ウォ ッチポイン トのタイプを変更します。
図 10-29 [Watchpoint properties] ダイアログボックス
以下のタイプが用意されています。
READ メモ リが読み出されたと きに、 デバッガがターゲッ ト を停止します。
WRITE メモ リが書き込まれたと きに、 デバッガがターゲッ ト を停止します。
ACCESS メモ リの読み出しまたは書き込みが行われたと きに、 デバッガがター
ゲッ ト を停止します。
10.25.1 関連項目
タスク
• データウォッチポイン トの設定 (4-13 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Breakpoints] ビュー (10-9 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— awatch (2-36 ページ)
— delete breakpoints (2-57 ページ)
— disable breakpoints (2-61 ページ)
— enable breakpoints (2-70 ページ)
— ignore (2-84 ページ)
— rwatch (2-148 ページ)
— watch (2-222 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-75ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.26 [ ト レースポイン トのプロパティ] ダイアログボックス
このダイアログボッ クスでは、 選択した ト レースポイン トのプロパティを表示できます。
図 10-30 [ ト レースポイン トのプロパティ] ダイアログボックス
以下のタイプが用意されています。
ト レースの起点 ト レースの起点に達する と、 ト レースのキャプチャを有効にしま
す。
ト レースの終点 ト レースの終点に達する と、 ト レースのキャプチャを無効にしま
す。
ト レースの ト リガポイン ト
ト レースの ト リガポイン トに達する と、 ト レースのキャプチャを開始します。
注 選択したターゲッ トに応じて、 ト レースポイン トの動作は異なる場合があ り ます。
10.26.1 関連項目
タスク
• ト レースポイン トの設定 (4-15 ページ)
• ターゲッ ト実行環境の検査 (5-2 ページ)
• コールスタ ッ クの検査 (5-5 ページ)
• 『ARM DS-5 : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • ARM アセンブラエディ タ (10-6 ページ)
• [Breakpoints] ビュー (10-9 ページ)
• C/C++ エディ タ (10-14 ページ)
• [Disassembly] ビュー (10-28 ページ)
• 関数ビュー (10-35 ページ)
• [Memory] ビュー (10-40 ページ)
• [Trace] ビュー (10-57 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-76ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.27 [Manage Signals] ダイアログボックス
このダイアログボッ クスでは、 1 つ以上のシグナルまたはプロセッサ例外に関するハ
ンド ラ (ベク タキャ ッチ) 設定を制御できます。 信号 (外部込み) またはプロセッサ
例外が発生した場合、 実行の停止、 メ ッセージの出力、 またはその両方を行う よ うに選択できます。 デフォルトでは、 べての信号に対して [停止] と [出力] が選択さ
れます。
注 デバッガは、 gdbserver を使用して リモート ターゲッ ト上で動作するアプリ ケーシ ョ
ンに接続されている場合は Unix シグナルを処理しますが、 オペーティングシステム
がないベアメ タルターゲッ ト上ではプロセッサ例外を処理します。
図 10-31 シグナルハンドラ設定の管理
図 10-32 例外ハンドラ設定の管理
10.27.1 関連項目
タスク
• Unix シグナルの処理 (4-30 ページ)
• プロセッサ例外処理 (4-32 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-77ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • [Target] ビュー (10-55 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-78ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.28 [Functions Filter] ダイアログボックス
このダイアログボッ クスでは、 関数ビューに表示されるシンボルのリ ス ト をフ ィルタできます。
図 10-33 [Functions Filter] ダイアログボックス
10.28.1 関連項目
タスク
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照 • 関数ビュー (10-35 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-79ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.29 [Debug Configurations] - [Connection] タブ
[Debug Configurations] ダイアログボッ クスの [Connection] タブでは、 DS-5 デバッ
ガのターゲッ ト接続を設定できます。 作成した各コンフ ィギュレーシ ョ ンは、 単一の
ターゲッ トプロセッサに関連付けられます。
開発プラ ッ ト フォームに複数のプロセッサがある場合は、 各プロセッサに対して別のコンフ ィギュレーシ ョ ンを作成する必要があ り ます。 複数のターゲッ トに接続して
いる と きは、 同期操作またはクロス ト リガ操作を実行できないこ とに注意して ください。
注 [Connection] タブのオプシ ョ ンは、 選択するプラ ッ ト フォームのタイプに依存しま
す。
[Select target]
以下のオプシ ョ ンを使用して、 ターゲッ ト を選択できます。
[Platform] ターゲッ トプラ ッ ト フォームを選択します。
注 ターゲッ トが表示されない場合は、 サポート担当者にお問い
合わせください。
[Project type] 以下のプロジェク トのタイプを選択します。
[Linux Application Debug] Linux アプリ ケーシ ョ ンをデバッグする場合に選択し
ます。
[Linux Kernel and/or Device Driver Debug] Linux カーネルまたはデバイス ド ラ イバをデバッグす
る場合に選択します。
[Bare Metal Debug] ベアメ タルターゲッ トで実行されているアプ リ ケーシ ョ ンをデバッグする場合に選択します。
APK ネイティブライブラ リデバッグ Android ターゲッ トで実行されているアプリ ケーシ ョ
ンをデバッグする場合に選択します。
[Debug operation] 以下のオプシ ョ ンを使用して、 ターゲッ ト環境を指定できます。 使用できるオプシ ョ ンは、 選択したプラ ッ ト フォームおよ
びプロジェク ト タイプによって異な り ます。
アプ リ ケーシ ョ ンをダウンロード してデバッグします , Android アプリ ケーシ ョ ンをダウンロード してデバッグします
アプ リ ケーシ ョ ンイ メージおよびライブラ リがターゲッ ト上に存在しない場合は、 このオプシ ョ ンを選択します。 ターゲッ トに接続する と、 デバッガはア
プリ ケーシ ョ ンをターゲッ トにロード し、 新しい gdbserver セッシ ョ ンを開始します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-80ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Start gdbserver and debug target resident application] アプ リ ケーシ ョ ンが既にターゲッ ト上に存在する場合は、 このオプシ ョ ンを選択します。
[Connect to already running gdbserver] アプ リ ケーシ ョ ンが既にターゲッ ト上に存在する場合、 および gdbserver が既に実行されている場合は、
このオプシ ョ ンを選択します。
[Debug and ETB Trace via DSTREAM/RVI] Embedded Trace Buffer (ETB) サポート を使ってベア
メ タルターゲッ トで実行されているアプ リ ケーシ ョンをデバッグして ト レースする場合に選択します。
[Debug and Trace via DSTREAM] ト レースポート インタフェースユニッ ト (TPIU) サ
ポート を使ってベアメ タルターゲッ トで実行されているアプ リ ケーシ ョ ンをデバッグして ト レースする場合に選択します。
[Debug and Kernel-only ETB Trace via DSTREAM/RVI] ETB サポート を使用したベアメ タルターゲッ トで実
行されているカーネルをデバッグして ト レースする場合に選択します。
[Debug via DSTREAM/RVI] ベアメ タルターゲッ トで実行されているアプ リ ケーシ ョ ンをデバッグする場合に選択します。
[Connections]
以下のオプシ ョ ンを使用する と、 デバッガと ターゲッ トの間の接続を設定できます。
[RSE connection] 以前に設定した リモート システムエクスプローラ (RSE) コン
フ ィギュレーシ ョ ンの リ ス ト 。 このデバッグコンフ ィギュレー
シ ョ ンに使用する必須の RSE コンフ ィギュレーシ ョ ンを選択
します。
[Android devices] 以前に設定した Android デバイスのリ ス ト 。 このデバッグコン
フ ィギュレーシ ョ ンに使用する必須のデバイスを選択します。
[Connect as root] gdbserver を開始する と きに、 [root] へのアクセスを選択しま
す。 このオプシ ョ ンは選択したデバッグ操作によって変わり、
使用できない場合があ り ます。
[gdbserver (TCP)] デバッガと gdbserver の間の接続に使用する、 ターゲッ トの IP アドレスまたは名前とそれに対応するポート番号を指定します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-81ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
選択したデバッグ操作によっては、 以下のオプシ ョ ンが用意されている場合があ り ます。
• デバッグ対象のアプリ ケーシ ョ ンを再起動する場合は、[Use Extended Mode] チェ ッ クボッ クスを選択します。 このオプシ ョ ンは、 すべてのターゲッ トの gdbserver で完
全に実装されていない場合があ り ます。
• [Terminate gdbserver on disconnect] チェ ッ クボッ クスを
選択して、 ターゲッ トから切断する と きに gdbserver を終
了します。
• [Use RSE Host] チェ ッ クボッ クスを選択して、 RSE 設定
ホス ト を使用して gdbserver に接続します。
[gdbserver (serial)] デバッガと gdbserver の間のシ リ アル接続に対して、 ローカル
シ リ アルポートおよび接続速度を指定します。 RTSM 接続の場合は、 gdbserver の詳細情報をターゲッ トから自
動的に取得します。
デバッグ対象のアプリ ケーシ ョ ンを再起動する場合は、 [Use Extended Mode] チェ ッ クボッ クスを選択します。 このオプ
シ ョ ンは、 すべてのターゲッ トの gdbserver で完全に実装され
ていない場合があ り ます。
[Bare Metal Debug] ターゲッ トの IP アドレスまたはデバッグハード ウェアエー
ジェン トの名前を指定します。 [Browse...] をク リ ッ ク して、
ローカルサブネッ ト または USB 接続で使用できるすべてのデ
バッグハード ウェアエージェン ト を表示するこ と もできます。
[Model parameters]
以下のオプシ ョ ンは、 RTSM プラ ッ ト フォームでのみ有効になり ます。
ローカルホス ト上のディ レク ト リからアプ リ ケーシ ョ ンおよび関連する共有ライブラ リ ファ イルをモデルで実行できる仮想ファ イルシステム(VFS) を設定できます。 または、 VFS を無効にして、 ファ イルをモデル
のディ レク ト リに手動で転送するこ と もできます。
[Enable Virtual File System support] VFS の使用を有効または無効にします。
[Host mount point] ローカルホス ト上のファイルシステムの場所を以下のいずれかの方法で指定します。
• 表示されるフ ィールドに場所を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
の場所のディ レク ト リ を検索します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内の
ディ レク ト リ を検索します。
ワークスペースルートディ レク ト リ を選択できます。
[Remote target mount point] モデルのファ イルシステムのデフォルトの場所を表示します。 デフォルトは /writeable ディ レク ト リです。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-82ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
[Debug] ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
図 10-34 VFS を使用したモデルの接続コンフ ィギュレーシ ョ ン
10.29.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-83ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ)
— RSE 接続を使用した ARM Linux ターゲッ トの操作 (3-11 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ)
— 第 5 章 リモート システムエクスプローラの使用 .
参照
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ)
• ARM® DS-5 ™ARM® DSTREAM™ ハードウェアの設定 , http://infocenter.arm.com/help/topic/com.arm.doc.dui0481-/index.html
• ARM® DS-5™ ARM® の RVI™ と RVT™ ハードウェアの設定 , http://infocenter.arm.com/help/topic/dui0515-/index.html.
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-84ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.30 [Debug Configurations] - [Files] タブ
[Debug Configurations] ダイアログボッ クスの [Files] タブでは、 デバッガを使用す
るホス ト上のアプリ ケーシ ョ ンファ イルおよびライブラ リのデバッグバージ ョ ンを選択できます。 必要に応じて、 ファ イルを転送できるターゲッ ト ファ イルシステムの
フォルダを指定するこ と もできます。
注 [Files] タブのオプシ ョ ンは、 選択するプラ ッ ト フォームおよびデバッグ操作のタイ
プに依存します。
[Files] 以下のオプシ ョ ンを使用する と、 ターゲッ ト ファ イルシステムを設定
し、 ターゲッ トにダウンロードするかデバッガで使用するホス ト上のファイを選択できます。 各デバッグ操作に使用できる [Files] タブのオ
プシ ョ ンは、 以下のとおりです。
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
[Debug] ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
表 10-1 各デバッグ操作に使用できる [Files] タブのオプシ ョ ン
ダウンロードおよび
デバッグアプリケーシ ョ ン
デバッグターゲッ ト
上のアプリケーシ ョ ン
既に実行している
gdbserver への接続
DSTREAM/RVI を介したデバッグ
DSTREAM/RVI を介したデバッグおよび ETB ト レース
Application on host to download 可 - - 可 可
Application on target - 可 - - -
Target download directory 可 - - - -
Target working directory 可 可 - - -
Load symbols from file 可 可 可 可 可
Other file on host to download 可 - - - -
Path to target system root directory
可 可 可 - -
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-85ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-35 モデルのアプリケーシ ョ ンに対するファイルシステムの設定
10.30.1 [Files] オプシ ョ ンの概要
使用できる [Files] オプシ ョ ンは、 [Connection] タブで選択したデバッグ操作に
よって異な り ます。 使用できる [Files] オプシ ョ ンは以下のとおりです。
[Application on host to download]
ターゲッ トにダウンロードするホス ト上のアプリ ケーシ ョ ンのイ メージファ イルを、 以下のいずれかの方法で指定します。
• 表示されるフ ィールドにホス トの場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 Eclipse ワークスペースの外部に
あるディ レク ト リのファ イルを選択します。
• [Workspace...] をク リ ッ ク して、 Eclipse ワークスペース内のプロ
ジェク トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
例えば、 除外された (デバッグはあ り ません) Gnometris アプリ
ケーシ ョ ンイ メージをダウンロードするには、gnometris/stripped/gnometris ファ イルを選択します。
[Load symbols] を選択して、 指定したイ メージのデバッグシンボルを
ロード します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-86ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Enable on-demand loading] を選択して、 デバッガでデバッグ情報を
ロードする方法を指定します。 このオプシ ョ ンを有効にする と、 ロード
時間が短縮され、 メモ リの使用量も小さ くな り ますが、 デバッグの速度が低下するこ とがあ り ます。
プロジェク トディ レク ト リ
ホス トで Android プロジェク トディ レク ト リ を指定します。
• 表示されるフ ィールドにホス トの場所を入力します。
• [ファ イルシステム ...] をク リ ッ ク して、 Eclipse ワークスペースの
外部にある場所のプロジェク トディ レク ト リ を選択します。
• [ワークスペース ...] をク リ ッ ク して、 Eclipse ワークスペース内の
プロジェク トディ レク ト リ を選択します。
APK ファ イル
ターゲッ トにダウンロードするホス ト上の Android APK ファ イルを指定
します。
• 表示されるフ ィールドにホス トの場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 Eclipse ワークスペースの外部に
あるディ レク ト リのファ イルを選択します。
• [ワークスペース ...] をク リ ッ ク して、 Eclipse ワークスペース内の
プロジェク トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
プロセス このフ ィールドは、 AndroidManifest.xml ファ イルから自動的に入力され
ます。
アクティ ビティ このフ ィールドは、 AndroidManifest.xml ファ イルから自動的に入力さ
れます。
[Application on target]
ターゲッ ト上のアプリ ケーシ ョ ンの場所を指定します。 gdbserver でこれ
を使用してアプ リ ケーシ ョ ンを起動します。
例えば、 モデルを使用する と きや、 VFS がホス ト ワークスペースをター
ゲッ ト上の /writeable と してマウン トするよ うに設定されている と き
に、 除外された (デバッグはあ り ません) Gnometris アプ リ ケーシ ョ ン
イ メージを使用するには、 表されるフ ィールドで以下のよ うに指定します。
/writeable/gnometris/stripped/gnometris.
[Target download directory]
ターゲッ トにプ リ ロード されたイ メージがある場合は、 ホス ト上の対応するイ メージの場所を指定する必要があ り ます。
デバッガは、 ターゲッ ト上のアプリ ケーシ ョ ンイ メージの場所をデフォルトの現在の作業ディ レク ト リ と して使用します。 デバッグするアプリ
ケーシ ョ ンのデフォルト設定を変更するには、 表示されるフ ィールドに場所を入力します。 現在の作業ディ レク ト リは、 アプ リ ケーシ ョ ンが相
対パスを使ってファイルを参照するたびに使用されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-87ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Load symbols from file]
ロードするデバッグ情報を含むアプリ ケーシ ョ ンイ メージを以下いずれかの方法で指定します。
• 表示されるフ ィールドにホス トの場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部にある
ディ レク ト リのファ イルを選択します。
• [ワークスペース ...] をク リ ッ ク して、 ワークスペース内のプロ
ジェク トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
例えば、 Gnometris のデバッグバージ ョ ンをロードするには、 gnometris プロジェク トルートディ レク ト リで使用できる gnometris アプリ ケー
シ ョ ンイ メージを選択する必要があ り ます。
[Enable on-demand loading] を選択して、 デバッガでデバッグ情報を
ロードする方法を指定します。 このオプシ ョ ンを有効にする と、 ロード
時間が短縮され、 メモ リの使用量も小さ くな り ますが、 デバッグの速度が低下するこ とがあ り ます。
こ こで共有ライブラ リ ファ イルを指定できますが、 通常は、 [Debugger]タブの [Shared library search directory] オプシ ョ ンを使用して共有ラ
イブラ リへのパスを指定します。
[Other file on host to download]
ターゲッ トにダウンロードする他のファイルを以下いずれかの方法で指定します。
• 表示されるフ ィールドにホス トの場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部にある
ディ レク ト リのファ イルを選択します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内のプロジェク
トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
例えば、 除外された (デバッグはあ り ません) Gnometris 共有ライブラ
リ をターゲッ トにダウンロードするには、gnometris/stripped/libgames-support.so ファ イルを選択して ください。
ターゲッ ト システムのルートディ レク ト リのパス
共有ライブラ リのシンボルを検索するためのシステムルートディ レク トリ を指定します。
デバッガはこのディ レク ト リ を使用して、 ターゲッ ト共有ライブラ リのデバッグバージ ョ ンのコピーを検索します。 ホス ト ワークステーシ ョ ン
のシステムルートに、 ターゲッ トルート ファ イルシステムにあるライブラ リの正確な表現が含まれている必要があ り ます。
[Target working directory]
このフ ィールドが指定されていない場合、 デバッガは、 ターゲッ ト上のアプリ ケーシ ョ ンイ メージの場所をデフォルトの現在の作業ディ レク トリ して使用します。 デバッグするアプ リ ケーシ ョ ンのデフォルト設定を
変更するには、 表示されるフ ィールドに場所を入力します。 現在の作業
ディ レク ト リは、 アプ リ ケーシ ョ ンが相対パスを使用してファ イルを参照するたびに使用されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-88ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Remove this resource from the list]
リ ソースをコンフ ィギュレーシ ョ ン設定から削除するには、 削除する リ ソースの横にあるこのボタンをク リ ッ ク します。
[Add a new resource to the list]
新しいリ ソースをファ イル設定に追加するには、 このボタンをクリ ッ ク した上で、 必要に応じてオプシ ョ ンを設定します。
10.30.2 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-89ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.31 [Debug Configurations] - [Debugger] タブ
[Debug Configurations] ダイアログボッ クスの [Debugger] タブでは、 ターゲッ ト
に接続した後にデバッガで行う アクシ ョ ンを指定するこ とができます。
[Run Control]
以下のオプシ ョ ンを使用する と、 接続する と きにターゲッ トの実行状態を定義できます。
[Connect only] ターゲッ トに接続しますが、 アプ リ ケーシ ョ ンは実行されません。
注 PC レジスタは設定されていません。 接続が確立される と、 保
留中のブレークポイン ト またはウォッチポイン トは後で無効になり ます。
[Debug from entry point] 接続が確立されたと きにアプリ ケーシ ョ ンを実行して、 イメージのエン ト リ ポイン トで停止します。
[Debug from symbol] 接続が確立されたと きにアプリ ケーシ ョ ンを実行して、 指定したシンボルのアドレスで停止します。 デバッガはシンボルを
解決する必要があ り ます。 C または C++ 関数名を指定する場合
は、 接尾文字 () を使用しないでください。
シンボルが解決できた場合、 シンボルのアドレスで実行を停止します。
シンボルを解決できないと、 シンボルが見つからないこ とを警告する メ ッセージが [Commands] ビューに表示されます。 次に、 デバッガはイ メージエン ト リポイン トで停止しよ う とします。
[Run target initialization debugger script (.ds)] このオプシ ョ ンを選択する と、 デバッガのコマンドが含まれているターゲッ ト初期化スク リプ ト ファ イルを接続直後に実行できます。ファ イルを選択するには、 以下のいずれかを行います。
• 表示されるフ ィールドに場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
にあるディ レク ト リのファ イルを選択します。
• [ワークスペース ...] をク リ ッ ク して、 ワークスペース内
のプロジェク トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-90ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Run debug initialization debugger script (.ds)] このオプシ ョ ンを選択する と、 デバッガコマンドが含まれているデバッグ初期化ファイルを、 ターゲッ ト初期化スク リプト ファ イルの実行後、 ま選択した場合はイ メージエン ト リポイン ト またはシンボルまで実行した後で実行できます。ファ イルを選択するには、 以下のいずれかを行います。
• 表示されるフ ィールドに場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
にあるディ レク ト リのファ イルを選択します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内のプ
ロジェク トディ レク ト リ またはサブディ レク ト リのファイルを選択します。
注 run または continue コマンドの前に wait コマンドを挿入し
て、 デバッガを接続し、 アプリ ケーシ ョ ンを指定した関数まで実行できるよ うにする必要があ り ます。
[Execute debugger commands] 初期化スク リプ トの完了時に実行される特定のデバッガコマンドを自動的に実行する場合は、 表示されるフ ィールドにデバッガコマンドを入力します。 1 行につき、 1 つのデバッガコ
マンドのみを指定する必要があ り ます。
[Host working directory] デバッガは、 Eclipse ワークスペースをホス ト上のデフォルト
の作業ディ レク ト リ と して使用します。 デバッグするアプ リ
ケーシ ョ ンのデフォルト定を変更するには、 [Use default]チェ ッ クボッ クスの選択を解除して、 以下の操作を行います。
• 表示されるフ ィールドに場所を入力します。
• [File System...] をク リ ッ ク して、 外部ディ レク ト リ を検
索します。
• [Workspace...] をク リ ッ ク して、 プロジェク トディ レク
ト リ を検索します。
[Paths] デバッガがソースコードを表示する と きに使用するホス ト上の検索パス
を変更できます。
[Source search directory] ソースファ イルを検索するディ レク ト リ を以下のいずれかの方法で指定します。
• 表示されるフ ィールドに場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
の場所のディ レク ト リ を検索します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内の
ディ レク ト リ を検索します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-91ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
共有ライブラ リ検索ディ レク ト リ 共有ライブラ リで検索するディ レク ト リ を以下のいずれかの方法で指定します。
• 表示されるフ ィールドに場所を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
の場所のディ レク ト リ を検索します。
• [Workspace...] をク リ ッ ク して、 ワークスペース内の
ディ レク ト リ を検索します。
[Remove this resource from the list]
コンフ ィギュレーシ ョ ン設定から検索パスを削除するには、 削除する リ ソースの横にあるこのボタンをク リ ッ ク します。
[Add a new resource to the list]
新しい検索パスをコンフ ィギュレーシ ョ ン設定に追加するには、 このボタンをク リ ッ ク した上で、 必要に応じてオプシ ョ ンを設定します。
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
デバッグ ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-92ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-36 アプリケーシ ョ ンの開始位置および検索パスを設定するデバッガコンフ ィギュレーシ ョ ン
10.31.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-93ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
参照
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-94ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.32 [Debug Configurations] - [Arguments] タブ
アプリ ケーシ ョ ンで main() コマンド ラ イン引数を受け取る場合は、 実行を開始した
と きにアプリ ケーシ ョ ンに渡される値を指定できます。
[Debug Configurations] ダイアログボッ クスの [Arguments] タブでは、 アプ リ ケー
シ ョ ンに渡される引数を入力できます。
注 このタブの設定は、 [Connect to already running gdbserver] デバッグ操作を使用する
接続には使用されません。
[Arguments] タブには、 以下の要素があ り ます。
[Program Arguments]
このパネルでは引数を入力できます。 テキス トが、 関連した値を使って Eclipse によって置き換えられる形式 ${var_name} の Eclipse 引数変数であ
る場合を除いて、 引数は変更されずにターゲッ ト アプ リ ケーシ ョ ンに渡されます。
Linux ターゲッ トの場合は、 バッ クスラ ッシュ (\) 文字を使用して一部
の文字をエスケープする必要があ り ます。 例えば、 @、 (、 )、 "、 および # 文字をエスケープする必要があ り ます。
[Variables...] このボタンを使用する と、 デバッグセッシ ョ ンを開始したと きにアプ
リ ケーシ ョ ンに渡される変数を選択できる [Select Variable] ダイアログ
ボッ クが開きます。
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
デバッグ ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-95ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-37 アプリケーシ ョ ンの引数の設定
10.32.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-96ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
参照
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-97ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.33 [Debug Configurations] - [Environment] タブ
[Debug Configurations] ダイアログボッ クスの [Environment] タブでは、 デバッグ
セッシ ョ ンの開始時にアプリ ケーシ ョ ンに渡されるターゲッ ト環境引数を作成して設定できます。
注 このタブの設定は、 [Connect to already running gdbserver] デバッグ操作を使用する
接続には使用されません。
[Environment] タブには以下の要素があ り ます。
[Target environment variables to set]
このパネルには、 デバッガで使用する現在のターゲッ ト環境変数が表示されます。
[New...] このボタンを使用する と、 新しいターゲッ ト環境変数を作成できる
[New Environment Variable] ダイアログボッ クスが開きます。
例えば、 モデルの Gnometris アプリ ケーシ ョ ンをデバッグするには、
DISPLAY 設定に対してターゲッ ト環境変数を作成する必要があ り ます。
図 10-38 ターゲッ ト環境変数の設定
[Edit...] このボタンを使用する と、 選択したターゲッ ト環境変数のプロパティを
編集できる [Edit Environment Variable] ダイアログボッ クスが開きます。
削除 このボタンを使用する と、 選択したターゲッ ト環境変数を リ ス トから削
除できます。
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
[Debug] ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-98ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
図 10-39 モデルの環境設定
10.33.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-99ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
参照
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Arguments] タブ (10-95 ページ)
• [Debug Configurations] - [Event Viewer] タブ (10-101 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-100ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.34 [Debug Configurations] - [Event Viewer] タブ
[Debug Configurations] ダイアログボッ クスの [Event Viewer] タブでは、 イベン ト
データのキャプチャ時にデバッガで使用するインス トルメンテーシ ョ ン ト レースマクロセル (ITM) チャネルを設定できます。
注 このタブの設定は、 ITM キャプチャがサポート されているターゲッ トのみに対して
有効になり ます。
[Event Viewer] タブには以下の要素があ り ます。
[Enable ITM capture]
ITM キャプチャを有効または無効にします。
[Max analysis trace depth]
ト レースバッファのサイズを指定します。 大値は 4GB ですが、 データ
転送と処理時間を 小限に抑えるためにバッファの一部のみを使用するよ選択できます。 バッファに保存されるデータは ITM パケッ ト と してエ
ンコード され、 他の ト レースデータ と インターリーブされる可能性があり ます。 したがって、 バッファから復元できる固有のデータの実際の量
は、 設定されているバッファサイズよ り も少ない可能性があ り ます。
[ITM Channel Configuration]
アプリ ケーシ ョ ンソースコードで使用される注釈と一致するよ うに、ITM チャネルを設定します。
[ITM Channel] チャネル番号を指定します。
[Encoding] 選択したチャネルのエンコーディングを選択します。
[RAW TEXT] 生のテキス トの場合に選択します。
[ENCODED] 生のテキス トに加えてタイムスタンプを生成できる形式でデータをエンコードする場合に選択します。
[File Output] イベン トデータの送信先を指定します。
[None] ファ イルではなくチャネルエディ タでデータを表示
する場合に選択します。
[Append] チャネルエディ タでデータを表示し、 テキス ト ファ
イルの既存のデータに追加する場合に選択します。
[Overwrite] チャネルエディ タでデータを表示し、 テキス ト ファイルに書き込む場合に選択します。 テキス ト ファ イ
ルの既存のデータは破棄されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-101ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
[Output File] イベン トデータの保存時に使用する出力ファイルを指定します。
• 表示されるフ ィールドにホス トの場所およびファ イル名を入力します。
• [File System...] をク リ ッ ク して、 ワークスペースの外部
にあるディ レク ト リのファ イルを選択します。
• [ワークスペース ...] をク リ ッ ク して、 ワークスペース内
のプロジェク トディ レク ト リ またはサブディ レク ト リのファ イルを選択します。
[Apply] 現在のコンフ ィギュレーシ ョ ンを保存します。 これはターゲッ トに接続
されません。
[Revert] 変更を元に戻して、 後に保存したコンフ ィギュレーシ ョ ンに戻しま
す。
[Debug] ターゲッ トに接続して、 [Debug Configurations] ダイアログボッ クスを
閉じます。
[Close] [Debug Configurations] ダイアログボッ クスを閉じます。
図 10-40 イベン ト ビューアの設定
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-102ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.34.1 関連項目
タスク
• RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• Linux カーネルへの接続の設定 (3-9 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ベアメ タルターゲッ トへのイベン ト ビューアの接続の設定 (3-14 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのインポート (3-26 ページ)
• 既存の起動コンフ ィギュレーシ ョ ンのエクスポート (3-24 ページ)
• 『ARM® DS-5™ : DS-5 スタートガイ ド』 :
— Gnometris アプリ ケーシ ョ ンの リ アルタイムシステムモデルへのロード
(3-9 ページ)
— Gnometris アプリ ケーシ ョ ンの ARM Linux ターゲッ トへのロード
(3-10 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— ダイナミ ッ クヘルプの表示 (2-39 ページ) .
参照
• イベン ト ビューアのチャネルエディ タ (10-18 ページ)
• [Debug Configurations] - [Connection] タブ (10-80 ページ)
• [Debug Configurations] - [Files] タブ (10-85 ページ)
• [Debug Configurations] - [Debugger] タブ (10-90 ページ)
• [Debug Configurations] - [Environment] タブ (10-98 ページ)
• DS-5 デバッガメニューとツールバーアイコン (10-104 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-103ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.35 DS-5 デバッガメニューとツールバーアイコン
以下の表では、 DS-5 デバッガで もよ く使用される メニューとツールバーアイコン
を説明します。 以下の表に記載されていないアイコン、 マークボタンなどについて
は、 ヘルプの目次から標準の 「Workbench User Guide」 または 「C/C++ Development User Guide」 を参照して ください。
ツールバーのアイコン上にマウスのポインタを置いてそのまま数秒ク リ ッ ク しないでいる と、 そのアイコンの用途の説明がヒン ト と して表示されます。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-104ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.35.1 DS-5 デバッガのアイコン
表 10-2 DS-5 デバッガのアイコン
アイコン
説明アイコン
説明
ターゲッ トに接続します。 ターゲッ トに接続した状態です。
ターゲッ トから切断します。 接続を削除します。
アプ リ ケーシ ョ ンを起動してメ インまで実行します。
アプリ ケーシ ョ ンを起動してエン ト リポイン ト まで実行します。
エン ト リポイン トからアプ リ ケーシ ョ ンを実行します。
アプリ ケーシ ョ ンを再起動します。
アプ リ ケーシ ョ ンの実行を継続します。
アプリ ケーシ ョ ンを停止します。
ステップ実行します。 ステップオーバーします。
ステップアウ ト します。 ステップ実行モードを切り替えます。
スタ ッ ク ト レースの設定をすべて折りたたみます。
コールスタ ッ ク
スレッ ド プロセス
カーネルモジュール 新しい RSE 接続を定義します。
RSE リ ソースツ リーを更新します。 ビューの内容をファイルに保存します。
ビューの内容をク リ アします。 [History] ビューに切り替えます。
ビューの内容を同期化します。 スクロールロ ッ クを切り替えます。
スク リプ ト ファ イルからコマンドを実行します。
コマンドをスク リプ ト ファ イルにエクスポート します。
選択したブレークポイン ト、 ウォッチポイン ト、 または式 (ビュー依存)を削除します。
すべてのブレークポイン ト 、 ウォ ッチポイン ト 、 または式 (ビュー依存) を削除します。
ソースファ イル内のブレークポイントの位置を表示します。
すべてのブレークポイン トおよびウォッチポイン ト を非アクティブ化します。
ファ イルからインポート します。 ファ イルにエクスポート します。
新しいスク リプ ト ファ イルを作成するか、 新しい式 (ビュー依存) を追加します。
選択したスク リプ ト ファ イルを実行します。
選択したファイルを開いて編集します。
選択したファイルを削除します。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-105ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
表示幅を設定します。 表示形式を設定します。
ASCII 文字の表示を切り替えます。 フ リーズモードを切り替えます。
[Screen] ビューパラ メータを編集し
ます。
新しい [Screen] ビューを追加します。
新しい [Disassembly] ビューを追加
します。
新しい [Variables] ビューを追加します。
新しい [Registers] ビューを追加しま
す。
新しい [Memory] ビューを追加します。
新しい [Expressions] ビューを追加
します。
新しい [Trace] ビューを追加します。
関数ビューを追加します。 進行中のビューのアップデート
ト レースのマークを切り替えます。 次の一致を表示します。
前の一致を表示します。 命令ト レースを表示します。
関数ト レースを表示します。 ナビゲーシ ョ ンの解像度を切り替えます。
ビューを切り替えます。
表 10-2 DS-5 デバッガのアイコン (続き)
アイコン
説明アイコン
説明
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-106ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.35.2 パースペクテ ィブアイコン
10.35.3 ビューアイコン
10.35.4 ビューのマーク
表 10-3 パースペクテ ィブアイコン
アイコン 説明アイコン
説明
新しいパースペクティブを開きます。 C/C++
DS-5 デバッグ ファース ト ビューバー
表 10-4 ビューアイコン
ボタン 説明 ボタン 説明
ド ロ ップダウン メニューを表示します。 ビューの内容を同期化します。
ビューを 小化します。 ビューを 大化します。
ビューを元のサイズに戻します。 ビューを閉じます。
表 10-5 ビューのマーク
アイコン 説明アイコン
説明
イネーブルされたソフ ト ウェアブレークポイン ト
イネーブルされたハード ウェアブレークポイン ト
イネーブルされたアクセスウォッチポイン ト
イネーブルされた読み出しウォッチポイン ト
イネーブルされた書き込みウォッチポイン ト
ディセーブルされたソフ ト ウェアブレークポイン ト
ディセーブルされたハード ウェアブレークポイン ト
ディセーブルされたアクセスウォッチポイン ト
ディセーブルされた読み出しウォッチポイン ト
ディセーブルされた書き込みウォッチポイン ト
保留中のソフ ト ウェアブレークポイン ト 保留中のハードウェアブレークポイン ト
保留中のアクセスウォッチポイン ト 保留中の読み出しウォッチポイン ト
保留中の書き込みウォッチポイン ト 接続されていないソフ ト ウェアブレークポイン ト
接続されていないハードウェアブレークポイン ト
接続されていないアクセスウォッチポイン ト
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-107ID 0 5 1 5 1 2 Non-Confidential
DS-5 デバッグパースペクテ ィブおよびビュー
10.35.5 その他のアイコン
接続されていない読み出しウォッチポイン ト
接続されていない書き込みウォッチポイン ト
イネーブルされた複数のステート メン トのソフ ト ウェアブレークポイン ト
ディセーブルされた複数のステート メントのソフ ト ウェアブレークポイン ト
エラー 現在の位置
警告 ブッ クマーク
情報 タスク
検索結果
表 10-6 その他のアイコン
アイコン 説明アイコン
説明
新しいリ ソースを作成するためのウ ィザードを開きます。
新しいプロジェク ト を作成するためのウ ィザードを開きます。
新しいフォルダを作成するためのウ ィザードを開きます。
新しいファイルを作成するためのウ ィザードを開きます。
検索のためのダイアログボッ クスを開きます。
コンテキス トヘルプを表示します。
インポートするためのウ ィザードを開きます。
エクスポートするためのウ ィザードを開きます。
表 10-5 ビューのマーク (続き)
アイコン 説明アイコン
説明
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 10-108ID 0 5 1 5 1 2 Non-Confidential
第 11 章 ト ラブルシューティング
以下の各ト ピッ クでは、 DS-5 デバッガを使用してアプ リ ケーシ ョ ンをデバッグする と
きに問題を診断する方法について説明します。
概念
• ARM Linux の問題と解決法 (11-2 ページ)
• デバッガからの内部ログの有効化 (11-3 ページ)
• ターゲッ ト接続の問題と解決法 (11-4 ページ) .
その他の情報
• ARM Technical Support Knowledge Articles, http://infocenter.arm.com/help/topic/com.arm.doc.faqs/index.html
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 11-1ID 0 5 1 5 1 2 Non-Confidential
ト ラブルシューテ ィング
11.1 ARM Linux の問題と解決法
Linux アプ リ ケーシ ョ ンのデバッグ時に以下の問題が発生する可能性があ り ます。
11.1.1 ARM Linux パーミ ッシ ョ ンの問題
ターゲッ トでアプリ ケーシ ョ ンを開始したと きにパーミ ッシ ョ ンが拒否されたというエラーメ ッセージを受けとった場合は、 アプリ ケーシ ョ ンの実行パーミ ッシ ョ ンの変更が必要になるこ とがあ り ます。 :
chmod +x myImage
11.1.2 ブレークポイン トに達していません
ターゲッ ト上のアプリ ケーシ ョ ンおよび共有ライブラ リがホス ト上のものと同じであるこ とを確認して下さい。 コードレイアウ トは同じでなければなり ませんが、 ター
ゲッ ト上のアプリ ケーシ ョ ンおよび共有ライブラ リにはデバッグ情報は不要です。
11.1.3 オペレーティ ングシステムのサポートは有効ではありません
オペレーティングシステム (OS) サポートが必要な場合、 可能であればデバッガに
よ り自動的にアクティブ化されます。 OS サポートが必要であるがアクティブ化でき
ない場合、 デバッガでエラーが生成されます。 :
ERROR(CMD16-LKN36):! Failed to load image "gator.ko"! Unable to parse module because the operating system support is not active
以下の場合は OS サポート をアクティブ化できません。
• vmlinux ファ イルのデバッグ情報がターゲッ ト上で実行するカーネル内のデータ
構造と正確に一致しない場合
• set os enabled off コマンドを使用して手動で無効にした場合
カーネルバージ ョ ンの一致を調べるには
• vmlinux イ メージをロード した後にターゲッ ト を停止します。
• print init_nsproxy.uts_ns->name コマンドを入力します。
• $1 出力が正しいこ とを確認します。 :$1 = {sysname = "Linux", nodename = "AEL", release = "2.6.35-ds5", version = "#1 Thu Nov 25 11:34:07 GMT 2010", machine = "armv7l", domainname = "(none)"}
11.1.4 関連項目
タスク • 共有ライブラ リのデバッグについて (6-12 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 11-2ID 0 5 1 5 1 2 Non-Confidential
ト ラブルシューテ ィング
11.2 デバッガからの内部ログの有効化
まれに、 内部エラーが起こ り、 お住まいの地域のサポート担当者に報告するよ う勧めるエラーメ ッセージがデバッガで生成されるこ とがあ り ます スタ ッ ク ト レースを
取得してデバッガ内のエラーの発生箇所を示す内部ログと と もにフ ィードバッ クするこ とで、 デバッガを向上させるこ とがきます。 DS-5 の現在のバージ ョ ンを取得す
るには、 Eclipse の [Help] メニューから [About ARM DS-5] を選択するか、 または
製品のリ リース ノート を開きます。
11.2.1 手順
Eclipse 内の内部ログを有効にするには、 DS-5 デバッグパースペクティブのコマンド
ビューに以下を入力します。
1. 定義済みの DEBUG レベル設定を使用してデバッガからのログメ ッセージの出
力を有効にするには、 以下を入力します。
log config debug
2. すべてのログメ ッセージをデバッガからファ イルに転送するには、 以下を入力します。
log file debug.log
注 内部ログを有効にする と、 大きなファ イルが生成され、 デバッガの速度が大幅に低
下する可能性があ り ます。 問題が発生したと きにのみ内部ログを有効にして下さい。
11.2.2 関連項目
タスク • 第 1 章 表記規則とフ ィードバッ ク .
参照
• [Commands] ビュー (10-20 ページ) .
• 『ARM® DS-5™ : デバッガコマンド リ ファレンス』 :
— log config (2-122 ページ)
— log file (2-123 ページ) .
• 『ARM® DS-5™ : Eclipse の使用』 :
— パースペクティブとビュー (2-22 ページ) .
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 11-3ID 0 5 1 5 1 2 Non-Confidential
ト ラブルシューテ ィング
11.3 ターゲッ ト接続の問題と解決法
ターゲッ トへの接続時に以下の問題が発生する可能性があ り ます。
11.3.1 接続の失敗
以下の理由で、 選択されたデバッグターゲッ トにデバッガが接続できない可能性があ り ます。
• デバッグターゲッ ト を使用するための有効なライセンスを持っていない。
• デバッグターゲッ トがインス トールされていないか接続が無効になっている。
• ターゲッ トハード ウェアが別のユーザによって使用されている。
• 誤って終了したソフ ト ウェアによ り接続が開いたままになっている。
• ターゲッ トが設定されていないか、 コンフ ィギュレーシ ョ ンファ イルが見つからない。
• ターゲッ トハード ウェアの電源が入っておらず使用できる状態になっていない。
• ターゲッ トが他のものによって使用が要求されているスキャンチェイン上にある。
• ターゲッ トハード ウェアが接続されていない。
• gdbserver を介して接続する場合にターゲッ トで gdbserver が実行されていない。
• ホス トからターゲッ トへのイーサネッ ト接続がない。
• ホス トおよびターゲッ トによって使用されているポート番号が間違っている。
ターゲッ ト接続とパワーアップ状態を確認したら、 ターゲッ ト を接続し直して下さい。
11.3.2 デバッガ接続設定
以下の理由で、 ベアメ タルターゲッ トのデバッグ時にデバッガを接続できない可能性があ り ます。
• ヒープベースアドレスが間違っている。
• スタ ッ クベース (メモ リの先頭) アドレスが間違っている。
• ヒープ リ ミ ッ ト アド レスが間違っている。
• ベクタキャ ッチ設定が間違っている。
選択したターゲッ トについてメモ リマップ設定が正しいこ とを確認します。 設定が間
違っている と、 スタ ッ クの破損、 またはアプリ ケーシ ョ ンがそのコードを上書きするために、 アプ リ ケーシ ョ ンがク ラ ッシュする可能性があ り ます。
11.3.3 関連項目
タスク • RTSM モデルへの接続の設定 (3-4 ページ)
• gdbserver を使用した Linux ターゲッ トへの接続の設定 (3-6 ページ)
• ベアメ タルターゲッ トへの接続の設定 (3-12 ページ)
• ターゲッ トからの切断 (3-28 ページ)
• セ ミ ホスティングと top of memory について (8-2 ページ) .
その他の情報 • マニュアルはボードに付属しています。
ARM DUI 0446IJ Copyright © 2010-2012 ARM. All rights reserved. 11-4ID 0 5 1 5 1 2 Non-Confidential