What is the difference between an emulator and a debugger?
You need an emulator if you want to debug (e.g. single step, watch registers, set breakpoints etc.) an original processor that doesn't have an integrated debugging interface.

The emulator is a more or less exact replica of the original processor with additional debugging hardware.

Nowadays many controllers have this debugging support as standard equipment although it is only needed for development. For those a simple debugger is enough.