Difference between revisions of "Debugging"

From ProgClub
Jump to: navigation, search
Line 5: Line 5:
 
Some questions to ask yourself when you're debugging a problem:
 
Some questions to ask yourself when you're debugging a problem:
  
 +
* are your inputs valid? i.e. valid format, valid range, etc. if you're looking at code which you swear is correct then the problem is probably in your inputs.
 
* have you used an 'if' statement where you need a 'while', or vice versa?
 
* have you used an 'if' statement where you need a 'while', or vice versa?
 
* have you made an assignment (=) instead of an expression (==)?
 
* have you made an assignment (=) instead of an expression (==)?

Revision as of 02:01, 19 March 2023

The plan with this page is to build a checklist for potential causes of bugs. I'm annoyed that I only started this 30 years after I started programming. Every time I solve a problem caused by a type of bug I will try to add it to this list so it doesn't get me so easily next time.

Checklist

Some questions to ask yourself when you're debugging a problem:

  • are your inputs valid? i.e. valid format, valid range, etc. if you're looking at code which you swear is correct then the problem is probably in your inputs.
  • have you used an 'if' statement where you need a 'while', or vice versa?
  • have you made an assignment (=) instead of an expression (==)?
  • did you forget to call your parent's constructor?
  • did you pass a constant value instead of a constant name to e.g. defined()
  • have you changed a positional interface (function parameters in order) without updating callers? positional interfaces are typically used in DAL add() and set() functions. as a general rule you should only add parameters and never change their order.

Reference