389 lines
20 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en" data-content_root="../">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />
<meta property="og:title" content="Debugging and Profiling" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://docs.python.org/3/library/debug.html" />
<meta property="og:site_name" content="Python documentation" />
<meta property="og:description" content="These libraries help you with Python development: the debugger enables you to step through code, analyze stack frames and set breakpoints etc., and the profilers run code and give you a detailed br..." />
<meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
<meta property="og:image:alt" content="Python documentation" />
<meta name="description" content="These libraries help you with Python development: the debugger enables you to step through code, analyze stack frames and set breakpoints etc., and the profilers run code and give you a detailed br..." />
<meta property="og:image:width" content="200">
<meta property="og:image:height" content="200">
<meta name="theme-color" content="#3776ab">
<title>Debugging and Profiling &#8212; Python 3.13.3 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=b86133f3" />
<link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?v=23252803" />
<link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css?v=5349f25f" />
<script src="../_static/documentation_options.js?v=5d57ca2d"></script>
<script src="../_static/doctools.js?v=9bcbadda"></script>
<script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
<script src="../_static/sidebar.js"></script>
<link rel="search" type="application/opensearchdescription+xml"
title="Search within Python 3.13.3 documentation"
href="../_static/opensearch.xml"/>
<link rel="author" title="About these documents" href="../about.html" />
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="copyright" title="Copyright" href="../copyright.html" />
<link rel="next" title="Audit events table" href="audit_events.html" />
<link rel="prev" title="test — Regression tests package for Python" href="test.html" />
<link rel="canonical" href="https://docs.python.org/3/library/debug.html">
<style>
@media only screen {
table.full-width-table {
width: 100%;
}
}
</style>
<link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
<link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
<script type="text/javascript" src="../_static/copybutton.js"></script>
<script type="text/javascript" src="../_static/menu.js"></script>
<script type="text/javascript" src="../_static/search-focus.js"></script>
<script type="text/javascript" src="../_static/themetoggle.js"></script>
<script type="text/javascript" src="../_static/rtd_switcher.js"></script>
<meta name="readthedocs-addons-api-version" content="1">
</head>
<body>
<div class="mobile-nav">
<input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
<nav class="nav-content" role="navigation">
<label for="menuToggler" class="toggler__label">
<span></span>
</label>
<span class="nav-items-wrapper">
<a href="https://www.python.org/" class="nav-logo">
<img src="../_static/py.svg" alt="Python logo"/>
</a>
<span class="version_switcher_placeholder"></span>
<form role="search" class="search" action="../search.html" method="get">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
<path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
</svg>
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
<input type="submit" value="Go"/>
</form>
</span>
</nav>
<div class="menu-wrapper">
<nav class="menu" role="navigation" aria-label="main navigation">
<div class="language_switcher_placeholder"></div>
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label>
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="test.html"
title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test</span></code> — Regression tests package for Python</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="audit_events.html"
title="next chapter">Audit events table</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/library/debug.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</nav>
</div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="audit_events.html" title="Audit events table"
accesskey="N">next</a> |</li>
<li class="right" >
<a href="test.html" title="test — Regression tests package for Python"
accesskey="P">previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.13.3 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" accesskey="U">The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Debugging and Profiling</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
<input type="submit" value="Go" />
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<section id="debugging-and-profiling">
<h1>Debugging and Profiling<a class="headerlink" href="#debugging-and-profiling" title="Link to this heading"></a></h1>
<p>These libraries help you with Python development: the debugger enables you to
step through code, analyze stack frames and set breakpoints etc., and the
profilers run code and give you a detailed breakdown of execution times,
allowing you to identify bottlenecks in your programs. Auditing events
provide visibility into runtime behaviors that would otherwise require
intrusive debugging or patching.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="audit_events.html">Audit events table</a></li>
<li class="toctree-l1"><a class="reference internal" href="bdb.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">bdb</span></code> — Debugger framework</a></li>
<li class="toctree-l1"><a class="reference internal" href="faulthandler.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">faulthandler</span></code> — Dump the Python traceback</a><ul>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#dumping-the-traceback">Dumping the traceback</a></li>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#fault-handler-state">Fault handler state</a></li>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#dumping-the-tracebacks-after-a-timeout">Dumping the tracebacks after a timeout</a></li>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#dumping-the-traceback-on-a-user-signal">Dumping the traceback on a user signal</a></li>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#issue-with-file-descriptors">Issue with file descriptors</a></li>
<li class="toctree-l2"><a class="reference internal" href="faulthandler.html#example">Example</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="pdb.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">pdb</span></code> — The Python Debugger</a><ul>
<li class="toctree-l2"><a class="reference internal" href="pdb.html#debugger-commands">Debugger Commands</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="profile.html">The Python Profilers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="profile.html#introduction-to-the-profilers">Introduction to the profilers</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#instant-user-s-manual">Instant Users Manual</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#module-cProfile"><code class="xref py py-mod docutils literal notranslate"><span class="pre">profile</span></code> and <code class="xref py py-mod docutils literal notranslate"><span class="pre">cProfile</span></code> Module Reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#the-stats-class">The <code class="xref py py-class docutils literal notranslate"><span class="pre">Stats</span></code> Class</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#what-is-deterministic-profiling">What Is Deterministic Profiling?</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#limitations">Limitations</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#calibration">Calibration</a></li>
<li class="toctree-l2"><a class="reference internal" href="profile.html#using-a-custom-timer">Using a custom timer</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="timeit.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">timeit</span></code> — Measure execution time of small code snippets</a><ul>
<li class="toctree-l2"><a class="reference internal" href="timeit.html#basic-examples">Basic Examples</a></li>
<li class="toctree-l2"><a class="reference internal" href="timeit.html#python-interface">Python Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="timeit.html#command-line-interface">Command-Line Interface</a></li>
<li class="toctree-l2"><a class="reference internal" href="timeit.html#examples">Examples</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="trace.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">trace</span></code> — Trace or track Python statement execution</a><ul>
<li class="toctree-l2"><a class="reference internal" href="trace.html#command-line-usage">Command-Line Usage</a><ul>
<li class="toctree-l3"><a class="reference internal" href="trace.html#main-options">Main options</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html#modifiers">Modifiers</a></li>
<li class="toctree-l3"><a class="reference internal" href="trace.html#filters">Filters</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="trace.html#programmatic-interface">Programmatic Interface</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="tracemalloc.html"><code class="xref py py-mod docutils literal notranslate"><span class="pre">tracemalloc</span></code> — Trace memory allocations</a><ul>
<li class="toctree-l2"><a class="reference internal" href="tracemalloc.html#examples">Examples</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#display-the-top-10">Display the top 10</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#compute-differences">Compute differences</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#get-the-traceback-of-a-memory-block">Get the traceback of a memory block</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#pretty-top">Pretty top</a><ul>
<li class="toctree-l4"><a class="reference internal" href="tracemalloc.html#record-the-current-and-peak-size-of-all-traced-memory-blocks">Record the current and peak size of all traced memory blocks</a></li>
</ul>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="tracemalloc.html#api">API</a><ul>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#functions">Functions</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#domainfilter">DomainFilter</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#filter">Filter</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#frame">Frame</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#snapshot">Snapshot</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#statistic">Statistic</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#statisticdiff">StatisticDiff</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#trace">Trace</a></li>
<li class="toctree-l3"><a class="reference internal" href="tracemalloc.html#traceback">Traceback</a></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</section>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="Main">
<div class="sphinxsidebarwrapper">
<div>
<h4>Previous topic</h4>
<p class="topless"><a href="test.html"
title="previous chapter"><code class="xref py py-mod docutils literal notranslate"><span class="pre">test</span></code> — Regression tests package for Python</a></p>
</div>
<div>
<h4>Next topic</h4>
<p class="topless"><a href="audit_events.html"
title="next chapter">Audit events table</a></p>
</div>
<div role="note" aria-label="source link">
<h3>This Page</h3>
<ul class="this-page-menu">
<li><a href="../bugs.html">Report a Bug</a></li>
<li>
<a href="https://github.com/python/cpython/blob/main/Doc/library/debug.rst"
rel="nofollow">Show Source
</a>
</li>
</ul>
</div>
</div>
<div id="sidebarbutton" title="Collapse sidebar">
<span>«</span>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="Related">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="right" >
<a href="audit_events.html" title="Audit events table"
>next</a> |</li>
<li class="right" >
<a href="test.html" title="test — Regression tests package for Python"
>previous</a> |</li>
<li><img src="../_static/py.svg" alt="Python logo" style="vertical-align: middle; margin-top: -1px"/></li>
<li><a href="https://www.python.org/">Python</a> &#187;</li>
<li class="switchers">
<div class="language_switcher_placeholder"></div>
<div class="version_switcher_placeholder"></div>
</li>
<li>
</li>
<li id="cpython-language-and-version">
<a href="../index.html">3.13.3 Documentation</a> &#187;
</li>
<li class="nav-item nav-item-1"><a href="index.html" >The Python Standard Library</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Debugging and Profiling</a></li>
<li class="right">
<div class="inline-search" role="search">
<form class="inline-search" action="../search.html" method="get">
<input placeholder="Quick search" aria-label="Quick search" type="search" name="q" id="search-box" />
<input type="submit" value="Go" />
</form>
</div>
|
</li>
<li class="right">
<label class="theme-selector-label">
Theme
<select class="theme-selector" oninput="activateTheme(this.value)">
<option value="auto" selected>Auto</option>
<option value="light">Light</option>
<option value="dark">Dark</option>
</select>
</label> |</li>
</ul>
</div>
<div class="footer">
&copy;
<a href="../copyright.html">
Copyright
</a>
2001-2025, Python Software Foundation.
<br />
This page is licensed under the Python Software Foundation License Version 2.
<br />
Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
<br />
See <a href="/license.html">History and License</a> for more information.<br />
<br />
The Python Software Foundation is a non-profit corporation.
<a href="https://www.python.org/psf/donations/">Please donate.</a>
<br />
<br />
Last updated on Apr 08, 2025 (14:33 UTC).
<a href="/bugs.html">Found a bug</a>?
<br />
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.2.3.
</div>
</body>
</html>