私はbeaglebone black用のアプリケーションを開発しています。 arm gccコンパイラを使用してクロスコンパイルし、scp
コマンドを使用してコンパイルされたバイナリをbeaglebone blackに移植し、ボード上で実行します。
アプリケーションはしばらく完全に実行されていましたが、後で分割エラーが発生しました。いくつかの調査を行った後、デバッグを使用できることがわかりましたが、ボードにインストールする方法、またはホストシステムを使用してデバッグする他の方法が何であるかという問題gdb
に直面しました。gdb
gdbserver
分割エラーをデバッグするのに役立ちます。
ベストアンサー1
まず、cross-gdbが必要です。これを行うには、gdbソースコードをダウンロードして解凍して実行し、通常./configure --target=arm-linux-gnueabi
どおりに進みますmake; make install
。これでインストールが完了したはずですgdb-linux-gnueabi
。走る。 beagleboneで実行しますgdbserver 0.0.0.0:1234
。 cross-gdbを実行しているマシンでtarget remote 192.168.12.34:1234
BBBのIPアドレスに置き換えるコマンドを入力します。これで、通常どおり gdb セッションを使用できるようになります。
ただし、いくつかの注意事項があります。
- プロセスを開始しようとせず、代わりに "continue"(または "c")コマンドを使用してください。
- デバッグ中のプロセスを終了すると
gdbserver
終了します。別のセッションを実行するには、再起動するだけです。 gdbはブレークポイントなどを覚えています。ただし、target remote
コマンドを再実行する必要があります。 - Gdbserverは、デバッグされたプログラムのイメージをgdbに送信しません。これを直接行う必要があります。個人的に最も簡単な方法はNFSを使用することだと思います。