This is a work-in-progress collection of methodologies and copy-n-paste recipes for successful debugging of simple and complicated software problems. Some sections are quite complete, while other will be finished at a later stage, and yet other haven't been started.
I have been developing software since 1995 and a lot of this work involved debugging. Over the years I developed a various efficient methodologies for discovering the source of the problem, which is the most difficult stage to solving it. Since after the problem is understood, typically the resolution is relatively easy.
Every so often someone I would be debugging a problem with would suggest to share my approaches with the world. I always said that it'd be too difficult to generalize, but recently the planted seed seems to have sprouted and so in the following documents I will try to share some of the insights to ease this very difficult at times process.
Writing about debugging in the void is very difficult and since I haven't been saving use cases, it will take some time to build this up, so expect these pages to be a Work In Progress (WIP) for many moons. But hopefully some ideas could be relayed to you sooner than later, and they would help to ease your burden of debugging in your work and play projects.