このページは、ソフトウェア、機器組込みのエンベデット・ソフトウェア(ファームウェア)の開発に関連したコラムのページです。このコラムはメールマガジン「アメニティ&サウンド 音と快適の空間へ」で連載していた技術・開発コラムを再編集したものを掲載しています。
ヒストリー機能には、大きく分けて2つのヒストリー機能があります。
1つは、実行コードの来歴を指すものでトレース機能(ヒストリー付きトレース)などとも呼ばれる、停止した時点までの実行記録をメモリに記憶しているものです。
トレースメモリはICEなどで。機能が高いものになると、かなりプロセッサレベルでの動作の記録を調べることができます。
▼@IT Insider's Computer Dictionary
ICE (In-Circuit Emulator)【アイス】
http://www.atmarkit.co.jp/icd/root/17/72606917.html
このヒストリカル・トレースは、割り込みやマルチタスクまで含めてタイミングや実際の動作を知りたいような場合には、大変便利な機能になります。
ステップ実行ではシミュレーションされるため、割り込みが抑止されて正常動作しても、実際の動作中では、割り込みが途中で発生している場合に問題が生じることもあります。このような問題は、ステップ実行でいくら調べても解決はできません。
▼@IT Insider's Computer Dictionary
割り込み (interrupt)【ワリコミ】
http://www.atmarkit.co.jp/icd/root/33/5787333.html
通常は、割り込み処理に、アイドル、通常処理と競合したり、問題が起こるような処理はさせないのですが、時間的な保証を正確にしなければならないシビアなI/Oが必要な時などに割り込み処理でI/O処理の一部を実装する必要が生じる場合があります。
例えば、タイマー割り込み処理の場合、処理時間を少なくする必要があるため、全てを割り込み処理で行なわせることができないないなどの理由によって、アイドル処理と割り込み処理に処理が分散し、その結果競合が生まれる場合があります。
このような危険なコードを作成した場合、問題を発見するばかりではなく、正しく排他制御やスケジューリングが機能しているかを調べるためにもヒストリカル・トレースで特定の履歴を調べて確証を得るという確認をすることがあります。
あまりロジカルで簡単な手続きのデバックのためにヒストリーを利用するという場面はありませんが、複雑な状態遷移によって実現されるシーケンスや比較的高度な時分割によって実現されている処理などの動作を確認するには便利な機能です。
もう1つのヒストリー機能は(特別なものではありませんが...)コマンド・ヒストリーです。コマンド・ヒストリーというのは、ご存知の方も多いと思いますが実行したコマンドを記録し、キーボードタイプしたコマンドと同じコマンドの実行を少ないキータイプで再度発行するための機能です。
コマンド型のターミナルがパソコンの主要インターフェースだった時には、コマンド・ヒストリーは多数のデバッガで実装されていましたが、GUIのマルチウィンドウタイプのデバッガが主流となってからは、以前のようにキーボードなどで効率良く操作できるコマンド・ヒストリが少なくなったように思います。
キーボードによる操作を主とするコマンドライン系のデバッガの場合、コマンド・ヒストリは、スペースキーやカーソルキー、ファンクション・キーなどに割り付けられていました。
GUIを持つOSの上で動作するデバッガは、カット&ペーストなどが可能になり、より柔軟なことができる代わりに、コマンドヒストリーが適していたような操作に関しては退化している場合があります。
これは、デバッガに限ったことではなく、OSもソフトウェア全般に言えることですが、文字ベースで画面分割を工夫して高い効率化を実現していたソフトウェアも、GUIベースに変化した結果、基本的で単純な部分に関してマウスやグラフィカルな操作を強いられるなど進歩したのかが疑問な場合があります。
文字ベースの時には、ボタンをクリックするような操作であってもコマンド文字列を生成して実現されていることが多かったので、コマンドをテンプレート化してファンクションキーに設定し、迅速に操作できたことも、GUIでは、ツールバーなどにカスタマイズしたボタンを作成して未使用の奇妙なキーボードの組み合わせにショートカット登録するような手段ぐらいしか代替手段がなくなっていることも多いように見えます。
スクリプトやカスタマイズの高機能化の替わりに、コマンド・ヒストリのような単純で有用であった機能が無くなり、必ずしも効率化できていないことは少なくないように思います。
高機能化に重きが置かれ、地味であっても効率的な手段がなおざりにされる現状は、良く言われるようなTCO削減や生産性向上などの視点からすれば進歩しているとは言えないと感じありますが、いかがでしょうか?
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)ソフトウェアの開発を行っています。 お客様のお役に立てることがございましたらご用命ください。