Tuesday, June 2, 2015

Episode 43: Debugging!

Download


Introduction: "Easy" Programming Problems & https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour

We are sponsored by audible! http://www.audibletrial.com/programmingthrowdown

News

Book of the Show

Tool of the Show

  • Jason: rsync
  • Patrick:  Multimeter

Debugging

  • Types of bugs
    • Crasher
    • Hang/Slowness
    • Wrong answer
    • Memory/Thread leak
    • Buffer Overrun
  • Techniques
    • Divide and Conquer
      • Finding where the problem isn’t
    • Logging
      • Print statements
      • Rolling files
    • Debugger
      • C/C++: GDB / LLDB
      • Javascript: FireBug
      • Python: pdb
      • Java: jdb or JDWP (Java Debugging Wire Protocol)
  • Profiling (asked for by Morten Nielsen)
    • Prelude/Postlude vs Random Sampling
    • C/C++: gprof
    • Javascript: Firefox/Chrome profiler
    • Python: Profile / cProfile
  • Memory Debugging
    • Valgrind
    • Address Sanitizer
  • Automation
  • Reporting
    • Crash Reporting
    • Aggregated statistics
  • Worst bug ever stories
    • Bugs that only happen in release builds
    • Bugs that only happen once per day
    • Bugs where you have to do something for a long time to get it to work
  • Crazy Stories
    • Friend’s dad debugged ATM machines in russia by playing notes at different frequencies
    • Stack unwinding by hand