There appeared to be limited resources on the net and on this mailing list for help getting gdb to work, so I thought I’d share my success. In this example the program to debug is named ‘arm_executable’:
- I used ‘make menuconfig’ in the buildroot to enable building both GDB server and GDB client on host;
- built the buildroot using ‘make’;
- flashed the new rootfs to the gumstix;
- ran ‘gdbserver localhost:2000 arm_executable’ on the gumstix;
- ran gdb from directory ‘buildroot/toolchain_build_arm_nofpu/gdbclient-6.3/gdb/’ with options ‘-symbols arm_executable’ – i.e. ‘./gdb -symbols arm_executable’
- used command ‘target remote 192.168.1.103:2000’ in gdb, where 192.168.1.103 is the IP of my gumstix;
- and everything worked!
The trick here is to use the ‘-symbols’ option instead of just ‘./gdb arm_executable’; for me this got rid of a problem that manifested as “SIGILL – illegal instruction” in gdb. Another thing to watch out for is to specify a path when running gdb, because you don’t want the normal gdb likely installed on your system and in your path to be used.
Hopefully this will save someone some trouble.