I was pleased to find that it was possible to set up Eclipse Galileo CDT to debug ARM code running under emulation; in this case, DS targeted homebrew built with the GCC ARM toolchain, via devkitPro, running inside of DeSmuME, on Ubuntu 9.04.

You make new a debug configuration and

  • under “Main” tab, set the executable to your ARM9 ELF binary (.elf file);
  • under “Debugger” tab, set the debugger to “gdbserver”;
  • point the debugger path to where your arm-eabi-gdb lives;
  • set the connection to use TCP from localhost at, say, port 10000.

Then, for convenience, make an external program entry for desmume with arguments

–arm9gdb=10000 <path_to_your_program.nds>

Run desmume first, then Debug in Eclipse, and you will be paused in the first line of source.

Until this point I was using Insight targeted for arm-eabi to do debugging. Eclipse’s IDE is more robust, more powerful and, well, integrated.