Who can claim that wrote a program without any errors on the first attempt? The human beings are error prone and no matter how smart or great programmers we are, we always end up writing buggy code, unintentionally of course :). That error could be as simple as syntax error or as complex as logical error. In any case we need a way to debug our program. This need increases when you are writing program in low level language like Intermediate Language, which is hard to debug.