GDB/GDBserverによるクロスターゲットのリモートデバッグPrograming Bible(1/3 ページ)

Linuxベースの組み込みシステムで動くアプリケーションのデバッグは厄介な仕事だが、GDBを使えば簡単に片付けられる。ここでは、GDBを使う上で最初の難関となるセットアップ周りについて解説する。

» 2007年11月30日 18時14分 公開
[Avi-Rozen,Open Tech Press]
SourceForge.JP Magazine

 Linuxベースの組み込みシステムで動くアプリケーションのデバッグは厄介な仕事だが、理論上はGDB(GNUデバッガ)を使えば、ゆとりで片付けられるはずである。だが実際には、そのためのGDBのセットアップがやや難関となる。現実に作業が発生するし、克服すべき技術的な障害も存在するからだ。とはいえ、当て推量に頼らずプログラムを一定の方法で系統的にデバッグすることのメリットは、この作業に掛かる手間を補ってあまりある。この作業で生ずる困難を軽減するヒントを幾つか紹介しよう。

 ターゲットプラットフォームでフル装備のGDBを動かさなくてもGDBserverを使う手がある。別のマシンでGDBを実行できるようにするプログラムだ。GDBserverを使う利点は、GDBの消費するターゲットリソースのほんの一部しか消費しないことにある。デバッガの低レベルの機能(ブレークポイントの設定、ターゲットプロセッサのレジスタ操作、アプリケーションメモリの読み書き)しか実装されていないからだ。GDBserverはデバッグ対象アプリケーションの制御を奪い、開発ワークステーション上のリモートGDBからの指示を待つ。

 いつものことだが、開発ワークステーションとターゲットプラットフォームでは搭載プロセッサの種類が異なる(前者がi686クラスのプロセッサなら、後者はARMやPowerPCといったところだろう)。これはワークステーションにインストールされているGDBバイナリがそのままでは使えないことを意味する。クロスターゲットデバッガが必要なのだ。つまり、GDBをソースコードから別途ビルドする必要がある。

関連キーワード

組み込み | Linux | コンソール


       1|2|3 次のページへ

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ