組込みLinux開発環境

組込みLinux開発環境


従来ICEのデバッグ環境を継承しながらも、組込みLinuxの仮想アドレスの認識ができ、複雑なアドレスの解決を自動的に実行可能。CSIDEにオプションソフト(Linuxアプリケーション・デバッグ・ライブラリ)を追加することすることで、MMU上の仮想空間への完全対応により、1台でカーネル、 ローダブル・モジュールからアプリケーションまでを一貫した環境でデバッグすることができます。

組込みLinux開発環境

アプリケーション・デバッグ機能の特長

Linuxの仮想アドレスを独自に解析しアプリケーションのデバッグを可能にします。複数のアプリケーションを切り替えてのデバッグや、すでに実行されているアプリケーションに対してアタッチしてデバッグすることができます。

実行中のアプリケーションへのアタッチ・デバッグ

現在、実行中のアプリケーションへアタッチしてデバッグすることが可能です。

特定のプロセス、またはスレッドに注目してのデバッグをサポート

デバッグ対象のプロセスから呼び出された場合のみドライバ内でブレークさせることができます。また、デバッグ対象のアプリケーションをスリープさせることにより、そのアプリケーションだけを停止させることもできます。さらに、特定プロセスの停止により、システム全体を同期させて停止する必要がある場合もあるため、何れか切り替えてのデバッグも可能です。スレッドもまた、プロセス同様のデバッグが可能です。

プロセス・ブレーク機能

XIPアプリケーション、prelinkライブラリのデバッグをサポート

本来ROMの固定アドレスにマッピングされているXIPアプリケーションをRAM上に自動展開することによりデバッグを可能としています。また、prelinkを通した後はアドレスが固定されますが、それらのライブラリのデバッグも可能です。

main関数からのデバッグをサポート

プロセスの起動、終了を監視し、アプリケーションの起動時にはmain関数からのデバッグを可能にします。通常Linuxではアプリケーションはカーネルがメモリに展開、実行するため、main関数からデバッグするのが困難でした。また、プロセスの終了時にはメッセージでプロセスが終了したことを知らせます。

プロセス監視機能

共有ライブラリのデバッグをサポート

共有ライブラリはアプリケーションと異なるアドレスに動的にマップされるため、アプリケーションとは違ったアドレス解決が必要になります。この問題をクリアし共有ライブラリの変数参照やプロセスIDを認識したブレークの設定を可能にします。

セグメンテーション・フォルトの発生を監視

セグメンテーションフォルトなど致命的なシグナルが発生するとアプリケーションは終了して、そのプロセスは消滅するため、再現性が低い不具合の場合にはデバッグ追跡するのが困難です。 シグナル・トラップ・ブレーク機能は、致命的なシグナルが発生したときにアプリケーションをブレークさせ、問題点がどこにあったかを追跡するのに役立ちます。

シグナル・トラップ・ブレーク機能

ターゲットへのファイル・コピーをサポート

JTAG経由でターゲット側のファイルアクセスが可能です。LANが実装されていないターゲットにファイルを転送する場合に役立ちます。ファイルの削除やディレクトリの作成も可能です。

ファイル転送機能

カーネル、ドライバ・デバッグ機能の特長

カーネルのC言語デバッグはもとより動的なドライバであるローダブル・モジュールのデバッグも可能です。ローダブル・モジュールは先頭関数からデバッグすることができます。

ローダブル・モジュール対応

Linuxカーネルによってロードされるデバイスドライバ(ローダブル・モジュール)はデバッガがロードしたアドレスを解決して、先頭関数からデバッグすることができます。

ローダブル・モジュール対応

Linuxのトータル・パフォーマンス測定、品質アップ

Linuxアプリケーションのパフォーマンスや品質をアップするため、プロセスの実行負荷の把握やメモリの使用状況を確認することができます。

Linux Trace Toolkitの活用でシステム全体のパフォーマンス分析

Linux Trace Toolkitを使用して、プロセスの遷移状態をグラフィカルに表示します。表示を切り替えることによってプロセスごとのCPU占有率をグラフで表示することができますので、システム全体に対してのプロセスの占有率が分かります。

Linux Trace Toolkitの活用でシステム全体のパフォーマンス分析

リアルタイム・トレースでボトルネックの詳細を追跡

PALMiCE2Hの大容量トレースメモリを活用すれば、プロセスやスレッドの遷移状況や実行履歴、関数ごとのパフォーマンス測定など詳細な分析をすることができます。消滅したプロセスについても独自の手法により解析可能です。

リアルタイム・トレースでボトルネックの詳細を追跡

メモリ・リークの検出で品質アップ

スメモリの確保、解放関数(malloc,realloc,freeなど)を監視し、メモリの確保と解放がどのように行われているかをグラフで表示します。アプリケーションが最終的にメモリの解放漏れをしていないかを検出する機能がありますので、たとえば解放漏れが原因で時間がたてば不安定になるような不具合の検出に役立ちます。

メモリ・リークの検出で品質アップ

システム全体の負荷率をグラフ表示

ユーザ・プログラムがシステム全体に対してどの程度の負荷を占めるのかをグラフ表示します。例えば、負荷が100%に満たない場合はシステムとして余力が残されているということになりますので、さらに別の処理を追加実行しても良いということが目安としてわかります。

システム全体の負荷率をグラフ表示

関数レベルの負荷率をグラフ表示

どの関数がシステムに対して負荷を与えているのかをグラフで確認することができます。システムのパフォーマンスをアップする時のボトルネックの発見に役立ちます。

関数レベルの負荷率をグラフ表示

SMP-Linux対応の特長

SMP-Linuxは1つのLinuxシステムで複数のCPUを並列処理させるための高度な仕組みを備えたLinuxです。CPUごとのスケジューラを採用しているSMP-Linuxでは、負荷バランスが大きく崩れるとプロセスのCPU割り当てを調整します。(プロセス・マイグレーション)その為、SMP-Linuxに対応したLinuxアプリケーション・デバッグ・ライブラリは、ランダムに発生するCPU間のプロセス・マイグレーションを監視し、デバッグ対象のアプリケーションがどのCPUで動作しているかを常に把握することで、SMPで動作するアプリケーションのデバッグを可能としました。

SMPアプリケーションのデバッグに対応

アプリケーションを実行しているCPUが他のCPUに割り当てを移住(プロセス・マイグレーション)されたとしても、ステップ/トレース/ソフトウェア・ブレーク等、非SMP-Linuxと変わらない操作感でのデバッグが可能です。

SMPアプリケーションのデバッグに対応

SMPを意識したプロセス遷移表示

プロセス遷移表示では同時実行している全CPUの動きを重ねて表示させることで、各CPUの競合やデッドロックなどSMPシステム特有の問題を一目で把握することができます。

 

プロセスの実行状態をCPU単位にグラフ表示することで、折れ線グラフでは解りにくいアプリケーションのマイグレーションやパフォーマンスを容易に確認することができます。

プロセス・トレース・ウィンドウ-プロセス・トレースグラフ

 

プロセス・トレース・ウィンドウ-CPU単位実行グラフ

機能比較

Linuxアプリケーション・デバッグ・ライブラリを使用すると下記のような機能が追加されます。

機能名称 ICE単体 Linuxアプリケーション・
デバッグ・ライブラリを追加
実行制御
メモリやIO、レジスタの参照/変更
変数の参照/変更
スタック・トレース
リアルタイム・トレース
Linuxアプリケーションのデバッグ ×
ローダブル・モジュールのデバッグ ×
マルチプロセス、マルチスレッド対応 ×
シグナル・トラップ・ブレーク ×
プロセス・トレース ×
メモリ・プロファイラ ×
システム情報表示 ×
ファイル転送機能 ×
プロセス対応リアルタイム・トレース ×
プログラム・モニタ ×

主な仕様

対応製品

対応製品
: PALMiCE3

詳細については当社営業部までお問い合わせください。

対応ディストリビューション

各種ディストリビューションの対応を行っております。

詳細については当社営業部までお問い合わせください。

接続図

Linuxサポートパッケージ(LSP)

Linuxサポートパッケージ(LSP)はお客様のシステムに依存度が高いLinux開発環境で予想される種々のテクニカルサポートを 行うと共に、安心してスムーズな開発を行って頂く事を目的としたサポート制度です。このLSPは、CSIDEの年間サポート制度とは別に用意させて頂いております。

詳細については当社営業部までお問い合わせください。

関連製品

Linuxアプリケーション・デバッガ C-Shark詳細はこちらへ

Linux標準デバッガ“gdb”の弱点を解消し、GUIベースで操作性抜群のWindows環境で使用できる高級言語デバッガ「CSIDE C-Shark」と、Linuxターゲット・システム内で動作する独自のCSIDEデーモン“csided”、“_csidedbg”により、組込み Linuxアプリケーションのデバッグ効率の向上を実現したデバッガです。