I guess DJBarry has a general idea of what debugging looks like in software in general, but probably wants to know more about how Dolphin as an emulator uses it.
You're emulating a very complex machine in software, meaning there are a lot of moving parts working in conjunction. If there's a problem in emulation, it's very helpful to be able to "see" what's going on inside any of the individual components at any given time. Of course, you could stare at the code and shout "What's wrong with it?!" but that's not nearly as effective proper debugging. If there's something wrong with the way Dolphin emulates the DSP's HLE implementation for example, it's extremely helpful to see the exact contents of all the mail messages it uses to communicate with the CPU or all the commands it executes and when. Imagine coding an emulator, you make a mistake implementing something called a DMA (basically a fast way to copy memory from one place to another); wouldn't it be helpful to see what the DMA is doing step-by-step? That's the sort of thing Dolphin's debugger does. It lets you "peek" into the emulated hardware. CPU registers, current instructions, generated interrupts, current memory values; if you need to know about it to check if the emulator is running properly, you make it part of your emulator's debugger.
You're emulating a very complex machine in software, meaning there are a lot of moving parts working in conjunction. If there's a problem in emulation, it's very helpful to be able to "see" what's going on inside any of the individual components at any given time. Of course, you could stare at the code and shout "What's wrong with it?!" but that's not nearly as effective proper debugging. If there's something wrong with the way Dolphin emulates the DSP's HLE implementation for example, it's extremely helpful to see the exact contents of all the mail messages it uses to communicate with the CPU or all the commands it executes and when. Imagine coding an emulator, you make a mistake implementing something called a DMA (basically a fast way to copy memory from one place to another); wouldn't it be helpful to see what the DMA is doing step-by-step? That's the sort of thing Dolphin's debugger does. It lets you "peek" into the emulated hardware. CPU registers, current instructions, generated interrupts, current memory values; if you need to know about it to check if the emulator is running properly, you make it part of your emulator's debugger.
