このページは、ソフトウェア、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムのページです。このコラムはメールマガジン「アメニティ&サウンド 音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。
デバッグ作業で、プログラムコードが1行づつ正しく機能してしているかを順次調べながら実行シミュレーションする機能が1ステップ実行の機能です。
設計、実装したプログラムコードを1行づつ実行しながら、メモリの内容(変数の内容)などを見ながら正しく、または、不正な実行の課程を調べるために利用します。
一般に、ステップ実行で調べたい個所が実行される直前に、ブレークポイント(前回にご紹介しました)を設定して実行を一旦停止し、このステップ実行を利用して、詳細に調べるという方法が取られます。
ステップ実行は、「コールアウト」などと呼ばれるサブルーチンの実行を1ステップとして実行する方法と、「ステップイン」「コールイン」と呼ばれるような、サブルーチン内も順次実行課程を調べる方法の2種類が用意されていることが多いようです。
▼アスキー デジタル用語辞典
「サブルーチン」
http://yougo.ascii24.com/gh/19/001980.html
古いデバッグ環境では、「コールアウト」の機能がなかったり、うまく動作せず、ブレークポイントを併用して関数のスキップ実行を行なう必要があるものも存在しました。
現在では、有名どころのチップのデバッグで、このような機能が低いことは考えにくくなっています(機能が低い場合もありますが...)
ブレークポイントでも触れましたが、現在の高機能なCPUなどでは、パイプライン処理や並列実行がありますので、ステップ実行も、実際には、エミュレーションレベルでの問題であって、厳密にプロセッサレベルで考えると、ステップ実行がありえないという状況になっています。
パイプラインでは実際の1ステップの実行が複数の段階に分かれ、並列化によって、前後の命令と同時に実行されているためアセンブラのレベルであっても、プロセッサの実行サイクルでは、1ステップづつの実行にはなっていません。
また、SIMD命令などのように複数命令を同時実行するタイプもありますし、DSPのSIMD系の命令の中には1クロックずれて丁度半サイクル実行を同時実行コードにしているものもあります。
これらは、ICEやチップデバッグエミュレーションでも、どのようにステップ実行されるのかがチップによって異なってきます。
もっとも、CPUのデバッグ機能自体がエミュレーション機能で動作しているものですし、パソコンなどに至っては、当のCPUがデバッガも実行していますので、エミュレーションそのものですが……
実行トレースメモリとヒストリ機能の能力が高いデバッガの場合、現在の停止位置から順に遡って逆実行する能力があるものが存在します。逆実行はステップ・バック実行などと呼ばれています。
逆実行は、うまく利用できる時もありますが、例えば、I/Oなどは逆実行の意味を持たない場合も多いため、機能が備わっていても利用頻度は高くない機能です(機能レベルは高いですが)。
ARIはハードウェア設計、製造、ファームウェア開発、 Windowsアプリケーションの開発をしています。 実績等に興味をお持ちいただけましたら、会社情報に主な開発実績を 「音響と開発」のコーナーには事例など関連情報を掲載していますのでご覧ください。
ソフトウェア開発と開発ツール関連の雑記
機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムです。 メールマガジン「アメニティ&サウンド 音と快適の空間へ」に連載していた技術・開発コラムを編集掲載しています。
ソフト、ハードウェア 技術関連の雑記
このコラムは無料メールマガジン「アメニティ&サウンド 音と快適の空間へ」 vol.36〜vol.64(2003年8/21〜2004年11/18)に 音響と開発の関連コラムとして連載していたものを編集掲載したものです。
技術・開発の閑話-2- vol.11〜20F1とコンピュータ技術 / ソフトウェアの標準と部品化
( 戦術と戦略の誤解 / アジャイル開発 / リファクタリング / 遺産と再生産 / 標準と生産管理 ほか)
|
技術・開発の閑話-2- vol.01〜10「ありえない」フェイルセーフと安全機能の連鎖 / HDD容量の差(天使の分け前) / リアルタイムとベストエフォート / エラーとコスト(ブルースクリーン/XP) / NDAと情報公開 / 専門ドメインの基礎範囲 / NHK技研公開(超高精細映像システム) |
エーアールアイはPCアプリケーション、デジタル機器の組込み(CPU)、信号処理(DSP)ソフトウェアの開発を行っています。 お客様のお役に立てることがございましたらご用命ください。