You may want to check out SID: http://sourceware.org/sid/ SID is a simulator framework that lets you build whole-board simulations by plugging together individual components. It has CPU cores for ARM (among others), memory, cache, disk drives, and so on. And it can talk to GDB via the remote protocol.