Put open source to work
July 16–17, 2018: Training & Tutorials
July 18–19, 2018: Conference
Portland, OR

Debugging by printf is for noobs

David Asabina (Asabina GmbH)
1:45pm2:25pm Wednesday, July 18, 2018
Software methodologies
Location: C123/124
Level: Beginner
Average rating: ***..
(3.60, 5 ratings)

Who is this presentation for?

  • Developers who primarily debug by printf and have little to no experience with GDB, strace, the BCC suite, perf, and other debuggers, profilers, or tracers

Prerequisite knowledge

  • A basic understanding of writing software in any language

What you'll learn

  • Explore debugging, tracing, and performance testing strategies


You perform numerous deployments per day and keep track by monitoring and logging. Printf debugging is something many of us rely on too much, even when we have other powerful tools at our disposal for debugging our apps.

David Asabina offers a cursory overview of the possibilities when using debuggers (GDB), tracers (BCC, strace, etc.), and profilers (perf) to study the apps we build. David starts by demonstrating how to compile and explore a simple and “healthy” C application with GDB. After the initial demo, he does the same using applications with errors (e.g., stack overflows and memory leaks).

Topics include:

  • Debugging C/C++ applications with GDB
  • Debugging Go applications with GDB
  • Debugging Python applications with GDB
  • Debugging Rust applications with GDB
  • Debugging Ruby applications with Pry
  • Debugging code on a microcontroller with GDB
  • Tracing
  • Available tools: Dtrace, strace, BCC, and OpenTracing
  • Profiling (with perf)
Photo of David Asabina

David Asabina

Asabina GmbH

David Asabina is an electronics and software developer with a background in embedded systems engineering focusing on home automation and chatbots. A wannabe amateur musician, David spends his best moments hanging out with the incredible @lenipaperboats, often talking about politics, technology, society, and their next trip, traveling, and hacking hardware and software. David was born in the Netherlands and raised in Suriname, South America, and is based in Germany at the moment. He speaks English, Dutch, and Surinamese fluently, but his German is still a work in progress.