Python includes a powerful debugger, but using it well requires practice. Setting a break point and inspecting local variables is easy, but what else can you do? What if you need to set the breakpoint in one of your dependencies, or only fire it conditionally? How do you navigate calls, or change them? Join me for an in depth look at how you can better use PDB to debug and understand programs.