|Think about Loose Coupling|
Interesting point of view, especially the 'psychological' aspect ('fever' excuse).
And even If I'm sure it works, for my part I rather use a methodical approach :
1) Don't assume everything even OBVIOUS things
2) Find where the code begin to diverge from what is expected.
(I use a kind of dichotomic process with print to ensure that the values produced are those expected until I find the point where it begins to mess)
3) print is the coder's friend.
print everything possible during each step around the spot where you think the problem is...
But as I've discovered that the psychological aspect is VERY important.
I try to handle it like a challenge (finding bugs IS A GOAL); I've decided that coding with bug is normal(ie: I'm normal ;-) and that finding bug quickly is a skill...
This used with my formal method helps me to debug my code with pleasure (I'm improving my skills) and without a 'ego lock'...
As you see even if our excuse (for not being 'guilty' of finding a bug) is different the point is that we only have to manage to believe it, to prevent 'ego lock'...
Sorry but my poor english doesn't allow me to translate 'ego lock' efficiently, anyone got an idea?