David Schmitt

Title: How to read code and understand bugs


Have you ever googled for a error message, and the only result was that message in the original project? Or the proposed solution is not applicable to your situation? Or there is no result, because the error is from a internal project? It's time to break out the tools.
Every error has a cause somewhere. Luckily, most probably in a piece of code someone has written at one time in the past. Due to the rise of free and open software (FOSS), ever more of the code involved in those issues is accessible to us. To use that as a resource, I need to be able to find, browse, read, analyze, understand, and evaluate that code. Which is basically what I did the last few years working with various open source tools. In this session I want to share some of my experiences, and approaches to understand what's happening, when something goes wrong:

  • Reading and browsing code for understanding
  • Building a mental model of the running system
  • Comparing expected and observed behaviours
  • Observing deeper into the system: strace, tcpdump, etc