CS241: Spring 2015 -- Lecture 9, debugging

Debugging
  1. Why Murphy's Law is false.
  2. A buggy life program
    1. On understanding the problem
      1. Many details, any one can trip you.
      2. On knowing when you know (metaknowlege)
      3. Class diagram.
      4. Q: The address of an Object foo? A: foo.hashCode()!
    2. Housekeeping
      1. Naming conventions
      2. Why format?
      3. Managing the windows
      4. souts and text
      5. Edit/Find in Projects
    3. Like a treasure hunt?
      1. Can't fix what you can't find!
      2. Hypothesis and testing
      3. This or that?
      4. When "impossible" things happen...
    4. souts
      1. Do we get wherever?
      2. What's in the variables?
    5. The debugger
      1. Starting
      2. Setting/unsetting breakpoints
      3. Step over, step into
      4. The Variables tab
      5. Inspecting variables by hovering
      6. Continue to next breakpoint
      7. The call stack (under Windows/Debugging)