Debugging

Developers often find themselves in situations where the code they've written is not working quite right. When that happens, a developer debugs their code by instrumenting, executing and inspecting the code to determine what state of the application does not match the assumptions of how the code should be correctly running.

Why is debugging important?

There are bugs in every modest sized or larger application. Every developer has to learn how to debug code in order to write programs that work as correctly as time and budget allow.

Debugging tools

There are many debugging tools, some of which are built into IDEs like PyCharm and others that are standalone applications. The following list contains mostly standalone tools that you can use in any development environment.

  • pdb is a debugger built into the Python standard library and is the one most developers come across first when trying to debug their programs.

  • Web-PDB provides a web-based user interface for pdb to make it easier to understand what is happening while inspecting your running code.

  • wdb uses WebSockets to allow you to debug running Python code from a web browser.

  • Pyflame (source code) is a profiling tool that generates flame graphs for executing Python program code.

  • objgraph (source code) uses graphviz to draw the connections between Python objects running in an application

pdb tutorials

pdb is the most commonly-used debugger for Python because it is built into the standard library. The following walkthroughs will show you how to use pdb while fixing your own code.

Python-specific debugging tutorials

The Python ecosystem has a range of tools to help with debugging your code. These tutorials show you how to either use a tool other than pdb or provide an overview of the debugging ecosystem for Python.

General debugging resources

The following resources are not specific to Python development but give solid programming language-agnostic debugging advice.

What's next after testing your application?

What code metrics should I be aware of?

Can I automate testing and deployments for my app?

How do I create unit tests?

Sign up for a monthly email with Full Stack Python tutorials. No spam ever.

Sponsored By

Digital Ocean logo.

Easily deploy your Python web apps to Digital Ocean's reliable cloud computing platform.


Okta logo.

Secure and manage identities in your Python web apps with Okta.


Scout logo

Scout monitors the performance of your Python apps, identifying slow queries, memory bloat, and more. Free during Tech Preview.


Real Python logo

Upgrade your Python skills by reading Real Python's awesome programming email newsletter.

Full Stack Python

Full Stack Python is an open book that explains concepts in plain language and provides helpful resources for those topics.
Updates via newsletter, Twitter & Facebook.

Matt Makai 2012-2018