Arduino Zero

Basically it is a way of stopping the program at any point and being able to examin the memory and even write values to it.
So that means you can single step through a program or set break points and track the value of variables and various stacks.