Arduino Zero

I've read a few things about hardware debugging but can't get my mind round what it actually is, either theoretically or in a practical sense.

Could someone clue me in please?