Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Need cross gdb for device

I installed gcc-arm-linux-gnueabihf cross-compiler on Ubuntu 12.04, and now I am able to build a program for embedded device. Where can I find cross gdb for debugging?

gcc-arm-linux-gnueabihf reference contains gdb-arm-linux-gnueabihf in the Related Packages list, which seems to be the debugger that I am looking for. But this package is not available.

like image 573
Alex F Avatar asked Nov 07 '12 12:11

Alex F


2 Answers

You need to install the gdb-multiarch package, then run gdb-multiarch command to remotely debug your target.

like image 103
user2104315 Avatar answered Oct 14 '22 21:10

user2104315


I recommend getting gdb from the Linaro toolchain rather than the Ubuntu repositories. Download gcc-linaro-arm-linux-gnueabihf-4.7-2012.10-20121022_linux.tar.bz2 from here and you'll find:

  • bin/arm-linux-gnueabihf-gdb
  • arm-linux-gnueabihf/debug-root/usr/bin/gdbserver

The latter is statically linked and of course built for ARM Linux.

Assuming you have networking already set up to your target board, copy gdbserver to it and run:

$ gdbserver --multi :2345

On your development machine, run:

$ arm-linux-gnueabihf-gdb
(gdb) target extended BOARD-IP-ADDR:2345
(gdb) set remote exec-file /bin/true
(gdb) run

and you're up and running with remote cross debugging.

Links to the Linaro bug tracker, mailing list and web forum are here. They're very active in ARM Linux toolchain, kernel, QEMU development as you can see from their release notes.

like image 15
scottt Avatar answered Oct 14 '22 23:10

scottt