Developing software is hard. All software has bugs. Some bugs are more painful than others. The worst kind are probably when you have a random crash that requires a specific sequence of events to trigger that reside on a read-only filesystem remote device that was built in release mode. Been there. Done that. Even got a t-shirt. (I have many Trolltech and Nokia t-shirts left over from days gone by.)
Remote debugging traditionally involves running the gdbserver command on the device. On very small machines where there isn't enough RAM to run gdb directly, running gdbserver on the remote device is probably the only way to use gdb. Let's put on some groove salad and get cracking!