アプリケーション・デバッガ“C-Shark”は、Linux標準デバッガ“gdb”の弱点を解消し、GUIベースで操作性抜群のWindows環境で使用できる高級言語デバッガ「CSIDE C-Shark」と、Linuxターゲット・システム内で動作する独自のCSIDEデーモン“csided”、“_csidedbg”により、組込み Linuxアプリケーションのデバッグ効率の向上を実現したデバッガです。1つのデバッガの操作で、複数のアプリケーションをリモート操作で起動およびアタッチしてデバッグする事が可能です。
CSIDE C-Sharkでは、1つのデバッガで複数のプロセスを簡単に切り替えてデバッグすることが可能です。
①アタッチしたプロセス名とプロセス(PID)番号
アタッチされたプロセスがツリーの項目として表示されます。 このツリーの項目を選択したプロセスがカレント・デバッグ対象になります。 この位置にカーソルがあると、プロセスに属する全てのスレッドが同時に実行やブレークを行います。 カーソル位置以外のプロセスは切り替える前の状態を継続します。
②アタッチしたプロセス内のスレッド(LWP)番号
スレッド番号の項目を選択すると選択したスレッドだけをデバッグ対象にする事ができます。 カーソル位置から外れたスレッドは切り替える前の実行やブレークの状態を継続します。
③デバッグ情報をロードしたプロセス名
CSIDEのファイル・サーバでデバッグ情報をロードしたプロセス名が表示されます。 ここに登録された項目のサブ・メニューから新しいプロセスを生成したり、実行中の同名プロセスにアタッチしてデバッグを行う事が可能です。
プロセス・トレースは専用のドライバ(csidept.ko)を使用して、現在ターゲットで稼動しているプロセスの遷移状況をグラフ化して表示し、また、その情報を元にCPU占有率も表示します。
メモリ・プロファイルは、デバッグ対象プロセスのメモリ使用量表示や、確保解放関数(malloc、free)が呼び出された場所の一覧表示を行います。 また、ユーザ・プログラム終了時にこの情報を解析し、メモリ・リークや、同じポインタに対する多重確保、無効な配列への解放の原因となった呼び出しを自動検出し、ダンプ表示も行います。 このウィンドウはglibcの確保、解放関数を対象とします。 対象となるメモリ確保、解放関数は以下の関数です。
・malloc, realloc, calloc, free
・new(mallocとして表示る場合があります), delete(freeとして表示される場合があります)
セグメンテーションフォルトなど致命的なシグナルが発生するとアプリケーションは終了して、そのプロセスは消滅するため、再現性が低い不具合の場合にはデバッグ追跡するのが困難です。 シグナル・トラップ・ブレーク機能は、致命的なシグナルが発生したときにアプリケーションをブレークさせ、問題点がどこにあったかを追跡するのに役立ちます。
共有ライブラリはアプリケーションと異なるアドレスに動的にマップされるため、アプリケーションとは違ったアドレス解決が必要になります。 この問題をクリアし共有ライブラリの変数参照やプロセスIDを認識したブレークの設定を可能にします。
① CSIDEデーモンと、アプリケーションをソースからクロス・コンパイルする。
② CSIDEデーモンの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置する。
環境変数PATHに設定されたディレクトリに全て配置してください。
③ CSIDEサーバの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置して実行する。
④ アプリケーションの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置する。
⑤ CSIDE C-Sharkが、CSIDEデーモンと通信してLinuxターゲットの操作を行う。
⑥ CSIDE C-Sharkがアプリケーションのデバッグ情報のロードを行い、ソース・ファイルの表示を行う。
⑦ CSIDEデーモンがCSIDE C-Sharkからの要求に従って複数のCSIDEサーバを起動する。
⑧ CSIDEサーバがデバッグするアプリケーションのプロセスにアタッチしてデバッグが可能となる。
■ C-Shark ARM *1
ARMアーキテクチャがARMv4T~ARMv7、ARMv8のCPUでユーザランドがAArch32の環境
■ C-Shark ARM64 *1
ARMアーキテクチャがARMv8のCPUでカーネル及びユーザランドがAArch64の環境
*1:ARMコアの場合、ARMアーキテクチャと命令セットの組み合わせによって製品が異なります。
半導体メーカの評価ボードやボードメーカの組込みボード、シングル ボード コンピュータ(SBC)等での動作確認を行っています。
資料名 |
---|
C-Shark ARM/ARM64動作確認ボード |
資料名 |
---|
カタログ |
C-Shark ARM 概要書 |
C-Shark ARM64 概要書 |