デバッガとICE ツール評価2

ソフトウェアとデジタル信号処理 : ソフト開発コラム
技術開発 ソフトウェア開発コラム
DSPボード/基板設計パターン image 映像と振動信号の製作イメージ CPU組込みソフト、ソフトウェア制御 アナログ回路と音声信号イメージ FPGA VHDLロジック設計イメージ

音響技術とソフトウェア、ハードウェア開発

音響と開発 : Sound & Development
株式会社エーアールアイ / ARI
ARI CO.,LTD.

技術・開発の閑話 :ソフト開発コラム
ソフトウェア開発コラム : ソフトウェア開発とソフトウェア開発ツール関連の雑記

このコラムは、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムです。メールマガジン「アメニティ サウンド音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。

CPU,DSPの内部の状態モニター

コラム : デバッガとICE【01】
01
デバッガとICE

ソフトウェアのデバッグには、デバッガ(Debugger)と総称されるデバッグ用のソフトウェア・ツールを用います。

デバッガは、モニター、エミュレータ−、トレーサーなどの機能の組み合わせやタイプによって形態や機能は異なりますが、おおよそ、次のような機能を持っています。

  • CPU、DSPの内部の状態(レジスタ、フラグなど)モニター
  • プロセッサ周辺のモニター(メモリ、I/Oなど)
  • 実行の停止(ブレーク、指定場所、条件付きブレーク)
  • 1ステップ実行(ソースコード、実行コードでの1行実行)
  • 任意部分の実行(および再実行)
  • ヒストリー(各種モニター情報の来歴記録)
  • 各種ファイルのロード、セーブ
  • シンボル化(シンボル情報の読み込み、設定、編集)

他にも多数のデバッグのための機能が提供されている場合がありますが、一般的な機能としてはこのような所ではないでしょうか...

CPU,DSPの内部の状態モニター
コラム : デバッガとICE【01】

《 技術開発の閑話 : CPU,DSPの内部の状態モニター 》

プロセッサ周辺のモニター(メモリ、I/O)

コラム : デバッガとICE【02】
02
プロセッサ周辺のモニター(メモリ、I/Oなど)

メモリの内容やI/Oポート他、ワンチップマイコンなどでは、多数の周辺I/O機能をワンチップにしているため、これらの状態をモニターすることができます(ワンチップでも、できないデバッガもあります状況証拠から推理小説のように類推してデバッグするしかない場合があります)

メモリは、シンボリック・デバッガ、ソースレベル・デバッガの場合には、デバッグ情報を利用して、変数名などで参照したり、編集することが可能です...

プロセッサ周辺のモニター(メモリ、I/O)
コラム : デバッガとICE【02】

《 技術開発の閑話 : プロセッサ周辺のモニター(メモリ、I/O)

実行の停止(ブレーク機能)

コラム : デバッガとICE【03】
03
実行の停止(ブレーク、指定場所、条件付きブレーク)

デバッグやテストなどで、状態を調査するために実行時の状態で停止するのが、このブレーク機能です。

ブレーク機能は、大きく分けると2つのブレーク機能に分かれます。

1つは、リアルタイムブレークというもので、名前の通り、キー操作などで即時停止する機能です。

もう1つは、あらかじめ停止条件を決めておいて条件が成立したときに停止する機能です。ブレーク・ポイントや条件付きブレーク機能などがあります...

実行の停止(ブレーク機能)
コラム : デバッガとICE【03】

《 技術開発の閑話 : 実行の停止(ブレーク機能)

シングルステップ実行

コラム : デバッガとICE【04】
04
シングルステップ実行(ソースレベル、実行コードレベル)

デバッグ作業で、プログラムコードが1行づつ正しく機能してしているかを順次調べながら実行シミュレーションする機能が1ステップ実行の機能です。

設計、実装したプログラムコードを1行づつ実行しながら、メモリの内容(変数の内容)などを見ながら正しく、または、不正な実行の課程を調べるために利用します。

一般に、ステップ実行で調べたい個所が実行される直前に、ブレークポイント(前回にご紹介しました)を設定して実行を一旦停止し、このステップ実行を利用して、詳細に調べるという方法が取られます...

シングルステップ実行
コラム : デバッガとICE【04】

《 技術開発の閑話 : シングルステップ実行 》

任意部分の実行(および再実行)

コラム : デバッガとICE【05】
05
任意区間の実行

ICEなどでは色々な低レベルなデバッグ方法が必要になりますので、この機能がついていることが多いのですが、パソコン用や高レベルデバッガ中心の製品には無い場合があります。

単純に、実行する開始場所を任意のコード場所を指定して実行するだけの機能です。

通常の高級言語などのデバッグでは、スタートアップやライブラリ、スタックなどの状態が維持できないことが多いため(スタックフレームの継続性を仕様上どのように考えられているかという問題ですが……ユーザー責任で感知しないというので良いようにも思います)、うまく利用できないことも多いですし、あまり有効に利用できることがないのですが、組み込み機器を開発している時にはうまく利用すると便利な機能です...

任意部分の実行(および再実行)
コラム : デバッガとICE【05】

《 技術開発の閑話 : 任意部分の実行(および再実行)

ヒストリー - 実行トレースとコマンド

コラム : デバッガとICE【06】
06
ヒストリー(各種モニター情報の来歴記録)

ヒストリー機能には、大きく分けて2つのヒストリー機能があります。

1つは、実行コードの来歴を指すものでトレース機能(ヒストリー付きトレース)などとも呼ばれる、停止した時点までの実行記録をメモリに記憶しているものです。

トレースメモリはICEなどで。機能が高いものになると、かなりプロセッサレベルでの動作の記録を調べることができます。

  ▼@IT Insider's Computer Dictionary
    ICE (In-Circuit Emulator)【アイス】
    http://www.atmarkit.co.jp/icd/root/17/72606917.html

このヒストリカル・トレースは、割り込みやマルチタスクまで含めてタイミングや実際の動作を知りたいような場合には、大変便利な機能になります...

ヒストリー - 実行トレースとコマンド
コラム : デバッガとICE【06】

《 技術開発の閑話 : ヒストリー - 実行トレースとコマンド 》

各種ファイルのロード、セーブ

コラム : デバッガとICE【07】
07
各種ファイルのロード、セーブ

基本的に、デバッガですから、実行ファイルやシンボル、マップファイルなどデバッグ情報のファイルのロードが可能なのは言うまでもありませんが(といっても、シンボリックデバッグ不能なICEだってありますし、ロードファイルもHEXなどの限られた形式のファイルのみという場合だってあります)、ファイルのセーブが可能とは限りません。

現在のは、ICEも、端末にパソコンやワークステーションと汎用OSを利用するものが主流ですから、パソコンのファイルを扱うことができるのは一般的ですが、実行用バイナリファイルや、特定の形式のファイルを専用の開発ツール(リンカも含めて)で作成したファイルが読み込めるだけの場合もあります...

各種ファイルのロード、セーブ
コラム : デバッガとICE【07】

《 技術開発の閑話 : 各種ファイルのロード、セーブ 》

シンボル化(読み込み、設定、編集)

コラム : デバッガとICE【08】
08
シンボルファイル(シンボル情報)

シンボルファイルについては、以前、ファイルに関係して少しだけ話題にしましたが、ここでは、シンボル定義などまで含めた機能についてです。

シンボルというのは大雑把(言語による定義の違いなどもあるので大まかですが)にいうと名前です。メモリや定数などに名前を付けることで、扱いやすくするためにシンボルの機能で名前をつけます。

現在は、ソースレベルのデバッガが主流になってきていますので、「シンボリックデバッガ」などとあえてシンボルが使えるデバッガと主張されることもなくなっていますが、創生期には、シンボルが使えない所から始まって、シンボルが利用できるようになり、ソースファイルとの対応、さらに高度なデバッグ情報までできているようにと発展してきています...

シンボル化(読み込み、設定、編集)
コラム : デバッガとICE【08】

《 技術開発の閑話 : シンボル化(読み込み、設定、編集)

ソフトウェア開発コラム : 技術・開発の閑話

ソフトウェア開発と開発ツール関連の雑記

機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムです。 メールマガジン「アメニティ&サウンド 音と快適の空間へ」に連載していた技術・開発コラムを編集掲載しています。

技術・開発の閑話 :ソフト開発コラム

技術・開発の閑話 : ソフト開発コラム

01ファームウェア(組込み)開発の技術
コラム:技術・開発の閑話【01】
02デバッギング・ミステリー
コラム:技術・開発の閑話【02】

開発ツールの話 : ソフト開発コラム

01ソフトウェアの分類
コラム:開発ツールの話【01】
02CPUとDSPのアーキテクチャの違い
コラム:開発ツールの話【02】

プロジェクト初期 ツール評価 : ソフト開発ツールの話

01プロジェクト初期のツール評価
プロジェクト初期のツール評価【01】
02プログラムの動作・ソースの作成
プロジェクト初期のツール評価【02】
03コード生成 アセンブラ、コンパイラ
プロジェクト初期のツール評価【03】
04型変換を伴う式評価(コード生成)
プロジェクト初期のツール評価【04】
05暗黙のライブラリ(コンパイラ生成コード)
プロジェクト初期のツール評価【05】
06組込みCPUのメモリアクセス1
プロジェクト初期のツール評価【06】
07組込みCPUのメモリアクセス2
プロジェクト初期のツール評価【07】
08組込みCPUのメモリアクセス3
プロジェクト初期のツール評価【08】
09コード生成〜デバッガ
プロジェクト初期のツール評価【09】

デバッガとICE ツール評価2 : ソフト開発ツールの話

01CPU,DSPの内部の状態モニター
コラム : デバッガとICE【01】
02プロセッサ周辺のモニター(メモリ、I/O)
コラム : デバッガとICE【02】
03実行の停止(ブレーク機能)
コラム : デバッガとICE【03】
04シングルステップ実行
コラム : デバッガとICE【04】
05任意部分の実行(および再実行)
コラム : デバッガとICE【05】
06ヒストリー - 実行トレースとコマンド
コラム : デバッガとICE【06】
07各種ファイルのロード、セーブ
コラム : デバッガとICE【07】
08シンボル化(読み込み、設定、編集)
コラム : デバッガとICE【08】

技術・開発の閑話 -2-

ソフト、ハードウェア 技術関連の雑記

このコラムは無料メールマガジン「アメニティ&サウンド 音と快適の空間へ」 vol.36〜vol.64(2003年8/21〜2004年11/18)に 音響と開発の関連コラムとして連載していたものを編集掲載したものです。

技術・開発の閑話 -2- :技術開発コラム

技術・開発の閑話-2- vol.11〜20

F1とコンピュータ技術 / ソフトウェアの標準と部品化 ( 戦術と戦略の誤解 / アジャイル開発 / リファクタリング / 遺産と再生産 / 標準と生産管理 ほか)


技術・開発の閑話-2- vol.01〜10

「ありえない」フェイルセーフと安全機能の連鎖 / HDD容量の差(天使の分け前) / リアルタイムとベストエフォート / エラーとコスト(ブルースクリーン/XP) / NDAと情報公開 / 専門ドメインの基礎範囲 / NHK技研公開(超高精細映像システム)

≪ 技術・開発の閑話 :技術・開発コラム ≫
3GPP対応 携帯電話開発用音響測定システム
TS 26.131/ 26.132 V5.0に準拠、ITU-T P.50とP501の試験信号、Windows Vista、Windows XP 3GPP対応 携帯電話開発用オーディオアナライザー MTA-02WB-S

《 デバッガとICE ツール評価2 -ソフトウェア開発コラム :音響技術と開発-ソフトウェアと信号処理 》

株式会社エーアールアイ/ARI CO.,LTD.
東京都八王子市横山町6丁目9番 丸多屋ビル8F
tel:042-656-2771 fax:042-656-2654

エーアールアイはPCアプリケーション、デジタル機器の組込み(CPU)、信号処理(DSP)ソフトウェアの開発を行っています。 お客様のお役に立てることがございましたらご用命ください。

エーアールアイ会社情報
製品情報と販売
音響と開発・サービス
音響機器メーカーと代理店

ご利用案内 | 免責事項 | ARI 音響と開発のサイトマップ | 株式会社エーアールアイ | 東京都八王子市横山町6丁目9番 丸多屋ビル8F

Copyright(c) 2001-2017 ARI Co.,Ltd. all rights reserved.