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

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

主な特長

  • EclipseやGDBに比べて、操作性、レスポンスのよい優れたGUIデバッガでデバッグ効率の大幅アップによる開発期間の短縮を実現
  • メモリ・プロファイルを標準搭載
  • LTTを使用しないで独自解析によるプロセス遷移図の表示を実現
  • 子プロセスのmain()関数からのデバッグを実現
  • 画面一つで複数プロセス・スレッドの協調デバッグを実現
  • CSIDEによるデバッグ情報ファイルの一括管理
  • FTP等のファイル転送プロトコルを必要とせず、CSIDEとターゲット間のファイル転送を実現
  • 対応アーキテクチャとしてARM(AArch32/64)をサポート

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

デバッグ・プロセスの簡単切り替え

CSIDE C-Sharkでは、1つのデバッガで複数のプロセスを簡単に切り替えてデバッグすることが可能です。


①アタッチしたプロセス名とプロセス(PID)番号

アタッチされたプロセスがツリーの項目として表示されます。 このツリーの項目を選択したプロセスがカレント・デバッグ対象になります。 この位置にカーソルがあると、プロセスに属する全てのスレッドが同時に実行やブレークを行います。 カーソル位置以外のプロセスは切り替える前の状態を継続します。

②アタッチしたプロセス内のスレッド(LWP)番号

スレッド番号の項目を選択すると選択したスレッドだけをデバッグ対象にする事ができます。 カーソル位置から外れたスレッドは切り替える前の実行やブレークの状態を継続します。

③デバッグ情報をロードしたプロセス名

CSIDEのファイル・サーバでデバッグ情報をロードしたプロセス名が表示されます。 ここに登録された項目のサブ・メニューから新しいプロセスを生成したり、実行中の同名プロセスにアタッチしてデバッグを行う事が可能です。

デバッグ・プロセスの簡単切り替え

プロセス・トレース

プロセス・トレースは専用のドライバ(csidept.ko)を使用して、現在ターゲットで稼動しているプロセスの遷移状況をグラフ化して表示し、また、その情報を元にCPU占有率も表示します。

プロセス・トレース

メモリ・プロファイル機能

メモリ・プロファイルは、デバッグ対象プロセスのメモリ使用量表示や、確保解放関数(malloc、free)が呼び出された場所の一覧表示を行います。 また、ユーザ・プログラム終了時にこの情報を解析し、メモリ・リークや、同じポインタに対する多重確保、無効な配列への解放の原因となった呼び出しを自動検出し、ダンプ表示も行います。 このウィンドウはglibcの確保、解放関数を対象とします。 対象となるメモリ確保、解放関数は以下の関数です。

・malloc, realloc, calloc, free

・new(mallocとして表示る場合があります), delete(freeとして表示される場合があります)

メモリ・プロファイル機能

2点間実行時間測定

2点間実行時間測定は、ユーザ・プログラムの2点間を指定して、その間の実行時間を最小、最大、平均時間で計測する機能です。

2点間実行時間測定

プロセス毎のソフトウェア・ブレーク機能

ブレーク・ポイントはプロセスIDを認識していますので、特定のプロセスでブレークさせることができます。

プロセス毎のソフトウェア・ブレーク機能

シグナル受信ブレーク機能

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

シグナル受信ブレーク機能

共有ライブラリ・デバッグ

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

ファイル転送機能

ftpサーバやsambaサーバが実装されていないターゲットにファイルを転送する場合に役立ちます。ファイルの削除やディレクトリの作成も可能です。

ファイル転送機能

動作環境

Windowsホスト

  • 日本語 Windows 10/8/7(32/64bit)
  • Pentium4 2GHz以上のCPUを推奨
  • 100MB以上(推奨2GB以上)空き領域のあるハードディスク
  • 512MB以上(推奨2GB以上)のメイン・メモリ
  • 解像度1024x768以上(HighColor以上)のディスプレイ
  • USBドングル・プラグ用として1つの空きUSB(1.1以上)ポート
  • Linuxターゲット接続用として1つ以上のEthernet-LANまたは、USB-LANでTCP/IPプロトコルによって通信可能であること

Linuxターゲット

  • Linuxカーネル 2.6、3.x、4.x
    Linuxカーネル バージョンの詳細は、概要書でご確認ください。
  • Windowsホスト接続用として1つ以上のEthernet-LANまたは、USB-LANでTCP/IPプロトコルによって通信可能であること
  • デバッグを行うプログラムのファイル形式がELF/DWARF2形式であること
  • procファイル・システムがあること
  • CSIDEデーモン各種ファイルが組み込めること

コンパイル環境

  • GNU Cコンパイラ(gccパッケージ)
  • GNU Cライブラリ、ヘッダー(binutils / glibcパッケージ)
  • カーネル・ソースおよび、カーネル・ヘッダ
  • ローダブル・モジュールの作成環境があること

デバッグ構成図

デバッグ構成図


① CSIDEデーモンと、アプリケーションをソースからクロス・コンパイルする。

② CSIDEデーモンの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置する。

  環境変数PATHに設定されたディレクトリに全て配置してください。

③ CSIDEサーバの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置して実行する。

④ アプリケーションの実行バイナリ・ファイルをLinuxターゲットのファイル・システムに配置する。

⑤ CSIDE C-Sharkが、CSIDEデーモンと通信してLinuxターゲットの操作を行う。

⑥ CSIDE C-Sharkがアプリケーションのデバッグ情報のロードを行い、ソース・ファイルの表示を行う。

⑦ CSIDEデーモンがCSIDE C-Sharkからの要求に従って複数のCSIDEサーバを起動する。

⑧ CSIDEサーバがデバッグするアプリケーションのプロセスにアタッチしてデバッグが可能となる。

対応CPU

■ 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動作確認ボード

ライセンス

  • CSIDEデバッガ本体は、複数のパソコンにインストール可能ですが、本製品に付属するUSBドングル・プラグを接続したWindowsホストに限って使用することができます。
  • C-Shark ARMとC-Shark ARM64には、永久ライセンス版と期間ライセンス版があります。

評価体験ダウンロード

より多くの方に当社製 C-Shark(シー・シャーク)を体験していただくことを目的とした評価版ダウンロードを実施中です。

評価版はCPU別にご用意しており、インストール後30日間は製品版と同じく全ての機能をご使用いただけます。

関連資料