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

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

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

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

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

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

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

プロセス・ブレーク機能

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

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

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

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

プロセス監視機能

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

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

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

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

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

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

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

ファイル転送機能

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

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

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

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

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

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

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

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

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

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

プロセス・トレースでシステム全体のパフォーマンス分析 *2

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

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

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

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

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

SMP-Linux対応の特長

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

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

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

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

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

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

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

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

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

機能比較 *1

Linuxデバッグ・モードへ移行すると、下記のような機能が追加されます。

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

主な仕様

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

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

PALMiCE4 ARMの対応Linuxバージョンは4.x、5.x以降となります。

PALMiCE4 ARM64の対応Linuxバージョンは5.4以降となります。

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

接続図

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

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

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

関連製品

Linuxアプリケーション・デバッガ C-Shark

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

  • *1:PALMiCE4のARMとARM64で仕様が異なります。
  • *2:PALMiCE4 ARM64では対応していない機能です。
  • *3:PALMiCE4用CSIDEのVer.7.16.00 以降でデバッグ・ライブラリは標準機能となりました。