# What is the difference between an emulator and a debugger? [duplicate]

In my experience I've used (to some degree) both emulators and debuggers. I've used them both for loading binaries (containing production code) into flash memory. I've also used them while developing programs in C and C++. On one hand you have your expensive $10,000 emulator (like the Lauterbach) or you have your humble Atmel JTAG ICE3 debugger (roughly$90). In my limited experience in roles involving embedded systems, I guess I've never really gotten down to the nitty gritty where I've needed to notice the difference.

One of my co-workers thinks that an emulator would allow you to directly connect to a processor and control it via JTAG. So I guess they are saying that you'd also be able to see dissassembly and be "attached" while stepping through the running embedded software. Is this true? If that's true then it is the only difference I could see. What are some other difference between the two?

## marked as duplicate by Olin Lathrop, Chris Stratton, Dave Tweed♦Mar 29 '18 at 18:43

• Short answer: emulation is a relic from the past/marketing babble. Long answer from tcrosley: electronics.stackexchange.com/questions/278451/… – Mishyoshi Mar 29 '18 at 18:22
• The language used in the marketplace isn't precise. If you need to know what makes a \$10k device worth its price, it is very easy to find out. Just contact the seller and ask them. They won't mind trying to explain why their device is work more money than a basic JTAG debugger module. I own a Microchip ICE 2000, which used "bond-out MCUs" (specialized, "unobtainable" ICs that provided more detailed access to the internals than a regular MCU IC) and plugs directly into the socket. The traces and breakpoints possible from that were NOT possible from the regular MCU. – jonk Mar 29 '18 at 18:29
• To keep things short: An emulator "mimics" hardware. For instance, there are emulators for different types of processors. There are emulators where you can play old-school video games like the Famicom/NES. You're running video game code through foreign hardware but an emulator can mimic that hardware. However, the problem with emulators is that there are checksums that the emulator cannot handle. There's also Assembly based emulators like Mars that can run MIPS Assembly. Debuggers run code specified by software for its instructions set and essentially converts code into machine code. – KingDuken Mar 29 '18 at 19:28