前回はターゲット上で作成しましたが、今回は開発ホスト想定の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でデバッグすることが可能になりました。