I think a lot of the difficulty in debugging is that we don't take a methodological approach to debugging. The bugs I spent the most on were the ones where I had preconceived notions. This is essentially what I tried to cover in my series on the subject .