From most of the answers its clear that debugging a program is one of the most frustrating thing that we programmers have to deal with. But why debugging is such a pain?
Because
1] What was the understanding or visualization of other person while writing the code remains a mystery. A hard one to solve.
2] We write such big programmes(even small sometimes) that while debugging we go so deep that we forget what originally the bug was. Literally this do happen. If somehow we manage to find the issue in a line then we play connect the dots. And believe me with many dots.
3] Also we are great fans of punctuation marks. We never ever ever try to avoid them. We make sure they are present and in sufficient quantity. Because if one, just one is left out then we are punished for next 2, 3 hours or maybe for days in worst cases.
Source: Personal experience.