PyCon Israel 2022

🇺🇸 The Journey of Upgrading A Python Version: From a Debugger Perspective
06-29, 14:00–14:20 (Asia/Jerusalem), Main Hall

What happens when you develop a Python debugger and the latest Python version breaks it? We’ll go through the process of debugging a Python debugger and the methods we used to solve it efficiently.

When a new Python version is released, the great opportunity to add new features to our software comes around. Yet, alongside those features, there’s always an API break which requires us to make undesired changes to our software. Often, the change can be as small and seemingly insignificant as a signature change or sometimes can be as big as shifting from Python 2 to 3.

In rare cases, due to this upgrade, your software would break. You'd then open your favorite debugger and begin debugging until you pinpoint the issue.

But what happens when you yourself develop a debugger… and need to debug your own debugger?

In this talk I will present what I learned from supporting the latest Python (3.10) when creating a debugger.
I’ll go through the background of the underlying debugging mechanism in Python, show a real-world example of what happens when an undocumented minor change in CPython interpreter breaks the debugger, and how to successfully find the solution. I’ll share some personal anecdotes of my own journey doing so and the tips and tricks I learned along the way.

Session language


Target audience


Nathan is Software Engineer at Rookout, with 8 years of experience in Embedded C++ and Python, mostly in the fields of cybersecurity, cryptography and network.
At Rookout, he takes part in the SDK team, responsible for developing a live debugger for 6 different languages.