シンボル情報の読み込み、設定、編集

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

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

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

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

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

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

シンボルファイル(シンボル情報)

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

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

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

シンボリックデバッグ、ソースレベルデバッグ

ICEなどでは、シンボリックデバッガやソースレベルデバッグという言葉が生きているように思いますが、PC用では当然で、あまり意味が無くなっているかも知れません(低レベルでは意味あると思いますが)

ちなみにGoogleで"ソースレベル デバッグ"を検索すると、日立のページが1番に表示されます。ページのタイトルは、「Cソースレベルデバッグができない」です。

  ▼日本語Google
    http://www.google.co.jp/

シンボル(名前)をつけると、リンク(バインド)してメモリが再配置されても、意味のある名前でコードやデータメモリなどを指定することができるので、デバッグ作業が効率化できます。

  ▼ASII24 アスキーデジタル用語辞典「リンク
    3番目の意味になっていますね。
    http://yougo.ascii24.com/gh/70/007024.html

デバッガの事前確認

現在は、ソースレベルデバッグが主流になったため簡単なシンボル情報ではなく、ソースとの対応まで含めたデバッグ情報をICEが読めないとシンボルすら読み込めない状態に陥ることがあります。特殊なプロセッサやカスタム化されたプロセッサなどでは、もしかしたら、ソースレベルはおろか、シンボリック・デバッグにすら、問題があるかもしれませんので、採用前にはしっかり確認することが肝要です。

マップ情報、リローケーション

初期のデバッガがサポートしていたシンボルファイルは、マップ・ファイルなどと呼ばれる、シンボル名と絶対アドレスが記載されただけの極単純な形式が主でした(書式は各種になりますが)

この場合、デバッガは、アドレスとシンボルの記載された書式付のテキストを読み込めれば良いので、形式の異なるファイルなども簡単にサポートすることも可能ですし、ユーザーが書式変換してシンボルを加工するのも容易でした。

しかし、動的にメモリ配置される場合には、リローケーションが必要ですし、シンボルの属性、例えば、コードのアドレス、データのアドレス(と語長)などデバッグに有効な情報にするには、より高度な情報が必要になります。

  ※リローケーション (メモリのロード時の再配置)
  ▼リロケータブル
    ASCII24 アスキーデジタル用語辞典
    http://yougo.ascii24.com/gh/05/000548.html

当然ソースレベルデバッグに対応したり、高級言語の変数タイプなどに対応するにつれて「高度」な情報が主になり、マップ・ファイルは出力することもできる程度の位置付けになってきます(これが有用な場合もありますが)

変換ツールなどの手間を削減

デバッガで形式が異なるファイルをサポートするのも、内部の情報レベルまで異なるため、対応が難しくなり、おのずと、サポート・フォーマットもある程度限定されてきます。同時に、デバッグ情報の記録形式とその中に含まれる情報が多いため、ユーザーが簡単に変換するというわけにも行かなくなります。

そのため、ICE、デバッガのシンボルやデバッグ情報に何らかの工夫をする必要があるような事態が生じる場合(コンパイラ、リンカ、アセンブラ、デバッガなどのツールをメーカー混合利用するなど)、デバッグ情報出力するためのツールを作ることにパワーが必要になります。

メーカーによって、サードパーティ製の変換ツールで別のデバッグ情報を変換できたり、シンボルの埋め込みができたりする場合もありますが、メーカーのQ&Aなどにはっきりと「他のデバッグ情報は対応できません」などと明記されている場合がありますから、事前に検討して、ツールを選択するところまで含めて注意が必要です。

コンパイラやリンカを組み合わせる

近年では組み込み系も、高級言語を利用して開発する機器も少なくありませんが(普通という方が適切かもしれません)、CPUやDSPなどが高速化のために専用命令をそなえている場合、メーカーのコンパイラが高度に対応している場合を除けば、ネイティブな専用コードを利用したコードが生成されることはありません(クロス開発に注力されている場合などは)

メーカー提供のコンパイラの場合にも、通常の実行に不可欠な制御やメモリ操作コードには対応していますが、DSP機能や並列実行の特殊命令などを積極的に利用したコード生成を行なうコンパイラは多くはありません。

基本的な実行コードが並列処理を基本としている場合には、並列処理のコードに対応したコード生成がされますが、特殊命令のような実装のプロセッサでは、アセンブラもしくは、インラインマクロのような機能による機械語コードの直接記述などが必要になります。

このような専用命令をアセンブラで実装する場合には、ツールを混合して実行モジュールを開発することになることも少なくありません。

混合方式の場合には、A社のアセンブラにB社のコンパイラ、デバッガのようにツールが1社で提供されているものを利用するとも限りませんので、デバッグ情報をデバッガが正しく読み込むことができるかが問題になります(それ以前に混合開発できるかも問題ですが)

クロス開発とデバッガ

クロス・コンパイラを用いる場合にはアセンブラと高級言語で実行モジュールを作成することは問題なくできると思いますが、対応できるデバッガが少ない場合もあります(シェアの大きいプロセッサ、ICEは対応されているでしょうが、少し特殊になると...)

高級言語で開発しているだけに、デバッガのデバッグ情報が高度な状態で互換されないと、デバッグ時には、十分な情報を利用できないということになり、かなり効率に影響する場合もあります。

開発実績と事例 ソフトウェア・ファームウェア
CPU/DSP

ARIはハードウェア設計、製造、ファームウェア開発、 Windowsアプリケーションの開発をしています。 実績等に興味をお持ちいただけましたら、会社情報に主な開発実績を 「音響と開発」のコーナーには事例など関連情報を掲載していますのでご覧ください。

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

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

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

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

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

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 08 : コラム - ソフトウェアと信号処理 》

株式会社エーアールアイ/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.