本サイトでは、アフィリエイト広告およびGoogleアドセンスを利用しています。

クロス向けのgdbを用意する

前回はターゲット上で作成しましたが、今回は開発ホスト想定のUbuntu上でターゲット向けのgdbを準備します。
ここでのターゲットはARM(32bit)でEABIHF(hard float)を想定しています。まぁJetson TK1想定です。

※ Ubuntuではarm向けのツールチェインをインストール済みであるとします。apt-get等でインストールしておいて下さい。

まずはxmlで必要になってくるので expat をインストールしておきます。

sudo apt-get install libexpat1-dev

gdbを本家サイトからダウンロードしてきて、展開します。また、buildディレクトリを作ってmake作業を行います。
他のユーザーに影響を与えないようにするため、 ホーム以下の host-tools にインストールされるようにしてみました。

$ tar xzf tar gdb-7.8.tar.gz
$ mkdir gdb-7.8/build
$ cd gdb-7.8/build
$ ../configure 
 --prefix=/home/appuser/host-tools \
 --target=armv7l-unknown-linux-gnueabihf \
 --with-expat --disable-nls \
 --disable-sim --disable-install-libbfd \
 --program-prefix=arm-linux-gnueabihf-

ここで –with-expatをつけてmakeしないと、XML読み込めていないエラーが発生するようです。
これをつけない場合、下記にしめすようなエラーが一緒に消えました!

Remote 'g' packet reply is too long:
09ea1180ffffffff009500000000000000000000000000000000100000000
(ゼロの連続なので省略)

このエラーはリモートのgdbserverに接続した際に出ていたものです。
gdbが用意できたことで、Ubuntu環境の中からgdbでデバッグすることが可能になりました。

linuxプログラミング
すらりんをフォローする
すらりん日記
タイトルとURLをコピーしました