Search across all documentation pages
12 pages in this section.
Why mutable default arguments, circular imports, asyncio deadlocks, memory leaks, and encoding bugs are the same shape of problem underneath - a boundary the code assumed was enforced turned out to be permeable - and the observe/narrow/hypothesize/verify loop that finds which one broke.
Learn how mutable default arguments in Python create shared state across function calls, leading to bugs. Discover fixes and examples.
Diagnose and resolve Python circular import errors. Learn to identify import cycles, extract shared types, and refactor code to break dependencies.
Debug Python encoding and Unicode errors like UnicodeDecodeError, mixed str/bytes types, and normalization issues.
Debug Python floating-point and numeric bugs. Learn to use Decimal for exact arithmetic and math.isclose() for reliable float comparisons.
Diagnose and resolve Python dependency and environment conflicts. Learn to fix import errors, ABI crashes, and CI failures caused by version mismatches.
Learn about Python debugging tools: breakpoint(), pdb, ipdb, remote debuggers, and logging. Choose the right tool for local reproduction or live system observation.
Learn to fix common Python defects with copy-paste before/after code snippets. Resolve mutable defaults, circular imports, and float math issues.
A single-page roundup of every highlight bullet from the 11 pages in the Debugging section, grouped by source page so you can scan all 64 takeaways without opening each article individually.