Not sure why we are talking about debugger, but one of the best things is to examine the IO registers. Let's say your I2C EEPROM access just don't work right. You HAVE set up the registers, but what if *something* set them to the wrong things? You never know. Well, you can of course use printf to print them out, but once you know they are indeed correct, you must then remove the printfs so they are useless (I use printf myself to leave bread crumbs). A debugger that lets you look at the IO registers come in handy in that situation. Just check the registers once, and if they are correct, then you can just forget about them and go on to other potential culprits.