title: How to Debug MIPS Interactively
body: <p>I'm taking a course on Computer Organization and Assembly.</p>
  
  <p>In class, we're learning MIPS. This is for the purpose of introducing basic concepts, like pipelining. We're writing a handful of simple MIPS programs for class.</p>
  
  <p>I'm used to gdb for debugging and learning, and the debugger we use in class is SPIM. SPIM sucks. It allows me to step through a program, but it doesn't allow me to interactively execute MIPS instructions at an arbitrary point of execution. I am immediately tired of having to exit SPIM, edit the source, and run SPIM again, navigating to the desired point of execution, only to see I have to do it again because I made yet another mistake.</p>
  
  <p>Or perhaps I am mistaken and SPIM does allow this. My instructor said that this feature is not supported, so I'm going off what he said. I googled around a bit and didn't find a workaround.</p>
  
  <p>I have tried googling for interactive MIPS debuggers like gdb but I haven't found any. I'm aware that gdb can debug MIPS programs, but I don't have a MIPS machine to run MIPS programs on.</p>
  
  <p>I run Ubuntu in VMware. How can I interactively debug MIPS programs, using gdb or otherwise?</p>
  
  <p><strong>Edit</strong>: found some reference material on <a href="https://www.mips.com/develop/tools/compilers/linux-toolchain/" rel="nofollow noreferrer">Mips.com</a> on their recommended Linux Toolchain.</p>