A configurable set of panels that display various debug information about the current request/response.

Overview

Django Debug Toolbar

Jazzband Build Status Test coverage status Supported Python versions Supported Django versions

The Django Debug Toolbar is a configurable set of panels that display various debug information about the current request/response and when clicked, display more details about the panel's content.

Here's a screenshot of the toolbar in action:

Django Debug Toolbar screenshot

In addition to the built-in panels, a number of third-party panels are contributed by the community.

The current stable version of the Debug Toolbar is 3.2.2. It works on Django ≥ 2.2.

Documentation, including installation and configuration instructions, is available at https://django-debug-toolbar.readthedocs.io/.

The Django Debug Toolbar is released under the BSD license, like Django itself. If you like it, please consider contributing!

The Django Debug Toolbar was originally created by Rob Hudson <[email protected]> in August 2008 and was further developed by many contributors.

Comments
  • Poor performance in Django 1.11 after template-based widget rendering

    Poor performance in Django 1.11 after template-based widget rendering

    As reported in Django's Trac ticket #27774, enabling the "Templates" panel on a page that does a lot of template-widget rendering (#15667) results in unacceptably slow page load. I'm not sure what an appropriate resolution might be. A possibility could be to have the debug toolbar ignore analysis for widget rendering.

    opened by timgraham 37
  • Added support for Content Security Policy

    Added support for Content Security Policy

    In order to use debug toolbar with a content security policy enabled, no inline scripts or styles can be used. This commit replaces all style attributes with CSS or javascript. It uses data attributes to handle the dynamic styles, like width and color.

    In addition, this required updating jQuery to 1.8, because 1.7 is not CSP compatible.

    See also #307, which began implementing CSP compatibility.

    Improvement Frontend 
    opened by gavinwahl 31
  • debug toolbar causes extra SQL queries

    debug toolbar causes extra SQL queries

    In latest master lazy querysets in template context are re-evaluting on every template context rendering so instead of e.g. 15 queries 100+ sql queries are executed with django-debug-toolbar enabled. Turning off 'debug_toolbar.panels.template.TemplateDebugPanel' brings sql query count back to 15. Extra queries information: http://pix.am/G8M0/

    Latest commit in SQL refactoring branch that works for me was 4d69dbea, starting from 5aff6ee7 debug toolbar either fails with an exception (None in not iterable, not all arguments are converted on string formatting) or generates extra sql queries (I may be wrong because I haven't tried all the commits).

    The setup is postgres, django 1.3 and TemplateResponse, the view is not wrapped in transaction. Using HttpResponse or wrapping view in transaction doesn't change anything.

    (edited: corrected commit numbers)

    opened by kmike 30
  • Add javascript timing metrics to timing panel onLoad if available

    Add javascript timing metrics to timing panel onLoad if available

    Some browsers support navigation timing via javascript. Since these metrics fit the category of timing, this commit adds a section to the timing panel containing key metrics from the browser, triggered soon after the onLoad event.

    The change is plain javascript, so no library dependencies.

    Background: https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/NavigationTiming/Overview.html

    Screenshot: http://dl.dropbox.com/u/15940111/browser_timing.png

    Tested on Chrome 22 and Firefox 14

    opened by mindsocket 23
  • SHOW_TOOLBAR_CALLBACK no longer supports lambda

    SHOW_TOOLBAR_CALLBACK no longer supports lambda

    in my setup i always have seperate dev settings and in those settings i enable debug toolbar for all requests. i've always done that with the following config

    DEBUG_TOOLBAR_CONFIG = {
        'SHOW_TOOLBAR_CALLBACK': lambda request: True,
    }
    

    after updating my virtualenv this morning i started getting errors that i've tracked down to trying to run rsplit on func_path

    line 45 of debu_toolbar/middleware.py:

        mod_path, func_name = func_path.rsplit('.', 1)
    

    it looks like the meaning of SHOW_TOOLBAR_CALLBACK may have changed to require a string and not support a callable. if that's the case i'm not sure what the solution would be. i'd rather not have to define a function somewhere and point this at it just to return true. i'd prefer if SHOW_TOOLBAR_CALLBACK supported being presented a callable.

    Improvement 
    opened by ross 22
  • Support insertion in StreamingHttpResponse

    Support insertion in StreamingHttpResponse

    Since Django 1.5 StreamingHttpResponse is introduced, this response class does not have content attribute, django-debug-toolbar middleware should be aware of that.

    Now I get this error:

    Traceback (most recent call last):
      File "/usr/lib/python2.7/wsgiref/handlers.py", line 85, in run
        self.result = application(self.environ, self.start_response)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/contrib/staticfiles/handlers.py", line 72, in __call__
        return self.application(environ, start_response)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/core/handlers/wsgi.py", line 255, in __call__
        response = self.get_response(request)
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/core/handlers/base.py", line 187, in get_response
        response = middleware_method(request, response)
      File "/home/sirex/.buildout/eggs/django_debug_toolbar-0.9.4-py2.7.egg/debug_toolbar/middleware.py", line 131, in process_response
        smart_unicode(response.content),
      File "/home/sirex/.buildout/eggs/Django-1.5-py2.7.egg/django/http/response.py", line 341, in content
        "Use `streaming_content` instead." % self.__class__.__name__)
    AttributeError: This StreamingHttpResponse instance has no `content` attribute. Use `streaming_content` instead.
    

    I use Django 1.5 and django-debug-toolbar 0.9.4.

    Improvement 
    opened by sirex 19
  • '<' not supported between instances of 'int' and 'str'

    '<' not supported between instances of 'int' and 'str'

    If session keys are not all strings, then this line (https://github.com/jazzband/django-debug-toolbar/blob/6a34e007e773d1243e3c7ba0b0ee07e4b45514ba/debug_toolbar/panels/request.py#L67) generate a TypeError:

    TypeError at /myurl
    
    '<' not supported between instances of 'int' and 'str'
    

    because:

    >>> l = ['a', 1, 'x', 22]
    >>> sorted(l)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
    TypeError: '<' not supported between instances of 'int' and 'str'
    
    
    Beginner friendly 
    opened by OdifYltsaeb 18
  • (urgent security problem) default _show_toolbar causes debug to leak to unprivileged IPs

    (urgent security problem) default _show_toolbar causes debug to leak to unprivileged IPs

            # if not internal ip, and not DEBUG
            if not (remote_addr in settings.INTERNAL_IPS or settings.DEBUG):
                return False
    

    The above line of code causes debug info to be shown to non privileged IPs.

    This is extremely bad and is completely against the documentation:

    "The default checks are that DEBUG must be set to True and the IP of the request must be in INTERNAL_IPS. "

    Please release an urgent fix for this by using:

            # if not internal ip, and not DEBUG
            if not (remote_addr in settings.INTERNAL_IPS and settings.DEBUG):
                return False
    
    opened by foxx 18
  • jQuery clashes

    jQuery clashes

    I'm creating a new issue to track in a single place all the problems related to the way the Debug Toolbar inserts jQuery into the page. #440 was supposed to fix the problem, but it didn't work for the trivial case of an HTML page without any JavaScript.

    I went for a very dumb solution in 2b6f5d6661dac283b7fb1cdfc6e252b6b6367d19. I don't know any better and I'm unable to assess the solutions that have been offered.

    As a consequence, until the other maintainers have a look at this issue or the toolbar gains new maintainers, this issue is unlikely to move forwards.

    I will now close all the issues that are variations of this issue as duplicates.

    Bug Frontend RequireJS 
    opened by aaugustin 17
  • ImproperlyConfigured: The included urlconf project.urls doesn't have any patterns in it (via patch_root_urlconf)

    ImproperlyConfigured: The included urlconf project.urls doesn't have any patterns in it (via patch_root_urlconf)

    patch_root_urlconf appears to cause an ImproperlyConfigured error for me:

    The included urlconf project.urls doesn't have any patterns in it
    

    This happens after adding debug_toolbar to INSTALLED_APPS.

    From the traceback it looks like the admin autodiscover triggers invocation of DDT's patching, but the project urlconf is still empty at that point.

    apps/project/urls.py looks as follows:

    # imports and autocomplete_light setup
    from django.contrib import admin
    admin.autodiscover()
    
    urlpatterns = patterns(
        '',
        (r'^grappelli/', include('grappelli.urls')),
        url(r'^admin/', include(admin.site.urls)),
    
        # …
    )
    

    This does not happen with DDT 0.10.2.

    I have also tried / are currently DDT master.

    Django Version: 1.6.2.dev20140104173735

    Traceback:
    File "/home/daniel/src/django-stable/django/core/handlers/base.py" in get_response
      101.                 resolver_match = resolver.resolve(request.path_info)
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in resolve
      318.             for pattern in self.url_patterns:
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in url_patterns
      346.         patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in urlconf_module
      341.             self._urlconf_module = import_module(self.urlconf_name)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/projects/tmm/apps/project/urls.py" in <module>
      15. admin.autodiscover()
    File "/home/daniel/src/django-stable/django/contrib/admin/__init__.py" in autodiscover
      29.             import_module('%s.admin' % app)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/src/django-stable/django/contrib/auth/admin.py" in <module>
      182. admin.site.register(Group, GroupAdmin)
    File "/home/daniel/src/django-stable/django/contrib/admin/sites.py" in register
      92.                     admin_class.validate(model)
    File "/home/daniel/src/django-stable/django/contrib/admin/options.py" in validate
      105.         validator = cls.validator_class()
    File "/home/daniel/src/django-stable/django/contrib/admin/validation.py" in __init__
      20.         models.get_apps()
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in get_apps
      139.         self._populate()
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in _populate
      75.                 self.load_app(app_name, True)
    File "/home/daniel/src/django-stable/django/db/models/loading.py" in load_app
      99.             models = import_module('%s.models' % app_name)
    File "/home/daniel/src/django-stable/django/utils/importlib.py" in import_module
      40.         __import__(name)
    File "/home/daniel/.virtualenvs/tmm/src/django-debug-toolbar/debug_toolbar/models.py" in <module>
      63.     patch_root_urlconf()
    File "/home/daniel/.virtualenvs/tmm/src/django-debug-toolbar/debug_toolbar/models.py" in patch_root_urlconf
      51.         reverse('djdt:render_panel')
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in reverse
      480.                 app_list = resolver.app_dict[ns]
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in app_dict
      310.             self._populate()
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in _populate
      262.         for pattern in reversed(self.url_patterns):
    File "/home/daniel/src/django-stable/django/core/urlresolvers.py" in url_patterns
      350.             raise ImproperlyConfigured("The included urlconf %s doesn't have any patterns in it" % self.urlconf_name)
    
    Exception Type: ImproperlyConfigured at /
    Exception Value: The included urlconf project.urls doesn't have any patterns in it
    
    opened by blueyed 17
  • SQL Panel: + button is no longer functional in debug-tool-bar 3.2

    SQL Panel: + button is no longer functional in debug-tool-bar 3.2

    Steps to reproduce:

    1. Refresh a page
    2. Open a the debug toolbar
    3. Select the SQL panel
    4. Press the + button for an SQL request

    Result:

    • Nothing happens, the + button is not responsive (whatever the SQL request)
    • (There is no such issue in earlier versions, including 2.2, 3.0, 3.1.)

    Expected result:

    • The + button should show the details of the SQL request

    Environement:

    • django 3.1.5
    • debug-toolbar 3.2
    • python 3.6.8
    opened by caramdache 16
  • Update translation files.

    Update translation files.

    We're a bit behind on updating the translations. The ideal solution is to have a CI task that verifies that the translations have been updated as a part of a PR.

    I've actually forgotten a lot of this translation process.

    opened by tim-schilling 0
  • Huge amount of store_id access has been raised

    Huge amount of store_id access has been raised

    Hello. Thank you for great works.

    I've update to v3.8.1 and found some issue.

    When I access to SPA page, which access to server api using axios, huge amount of access(*) was recorded and Debug toolbar does not show any panel. * http://localhost:8000/__debug__/history_sidebar/?store_id=03b13fc6002f4d11abd19ca4de7cb732)

    Not SPA page(maybe not access to API server via JavaScript), does not happen.

    Dose anyone else experienced the same problem?

    v3.8.1

    https://user-images.githubusercontent.com/56591/208930764-aef41a86-7a8b-464e-a6e2-903b65ee3b5c.mp4

    v3.7.0 works fine.

    https://user-images.githubusercontent.com/56591/208929306-f0a4241d-e7ae-4091-accc-f2f15f6f5ee7.mp4

    I think this PR https://github.com/jazzband/django-debug-toolbar/pull/1685 was releated.

    OS: macOS X Django: 3.2.16 React: 17.0.2 axios: 0.27.2

    Best regards.

    opened by heavenshell 0
  • Content-Security-Policy and strict-dynamic

    Content-Security-Policy and strict-dynamic

    Django Debug Toolbar is blocked by CSP if we are using strict-dynamic. Django already support it from the box if we can include nonce="{{request.csp_nonce}}" in the template

    opened by sshishov 1
  • Replace aliased imports with their canonical name

    Replace aliased imports with their canonical name

    See #1717

    When I see a settings variable in a Django project I immediately assume that it's django.conf.settings

    When I see dt_settings I have to look it up.

    Also, override immediately tells me django.utils.translation.override. If it's not obvious I sometimes import the module and use the function as translation.override but that happens almost never.

    It's a low priority issue but I think it should be changed if it's possible without breaking too many pull requests :)

    opened by matthiask 4
  • Drop support for Python 3.7

    Drop support for Python 3.7

    Description

    This pull request drops support for Python 3.7. Older versions of the toolbar will still be usable by people still using 3.7. This also makes us use less CI resources, something which is a big plus for me.

    Also, see https://pythonspeed.com/articles/stop-using-python-3.7/

    Checklist:

    • [x] I have added the relevant tests for this change.
    • [x] I have added an item to the Pending section of docs/changes.rst.
    opened by matthiask 0
  • Use correct language in panels

    Use correct language in panels

    Description

    Greetings fellows,

    PR #1703 introduced a bug where SQLPanel (and probably others) is rendered in LANGUAGE_CODE language, while it should use TOOLBAR_LANGUAGE if provided. This PR fixes panel's content language.

    I am not sure what else could be missed, I am also open to other implementations.

    Best, Rust

    Checklist:

    • [x] I have added the relevant tests for this change.
    • [x] I have added an item to the Pending section of docs/changes.rst.
    opened by amureki 12
Releases(3.8.1)
  • 3.8.1(Dec 3, 2022)

    Note: 3.8.0 was not released, use 3.8.1

    What's Changed

    • fix: Simplify logic for Panel.enabled property by @adamantike in https://github.com/jazzband/django-debug-toolbar/pull/1676
    • Auto-update History panel with JavaScript fetch requests. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1685
    • Improve the template_source view coverage a bit by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1688
    • Support rerendering the toolbar on HTMX boosted pages. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1686
    • Include panel scripts in content when RENDER_PANELS=True by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1689
    • Fixed #1693 -- Run tests on python 3.11 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1694
    • Add divide by zero protection in timer.js by @SmailBestybay in https://github.com/jazzband/django-debug-toolbar/pull/1687
    • Fixed #1695 - Run test on Python 3.11 for Django 4.1 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1696
    • Create one-time mouseup listener for each mousedown by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1697
    • Update package metadata by @ofek in https://github.com/jazzband/django-debug-toolbar/pull/1690
    • Validate and format pyproject.toml by @hugovk in https://github.com/jazzband/django-debug-toolbar/pull/1700
    • Drop Rob's email address in project config. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1699
    • Fix highlighting on history panel by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1698
    • Allow Language Selection on the Toolbar by @leandrodesouzadev in https://github.com/jazzband/django-debug-toolbar/pull/1703
    • Attach handlers to djDebug instead of document by @scuml in https://github.com/jazzband/django-debug-toolbar/pull/1702
    • Formalize support for Python 3.11. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1713

    New Contributors

    • @adamantike made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1676
    • @SmailBestybay made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1687
    • @ofek made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1690
    • @hugovk made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1700
    • @leandrodesouzadev made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1703

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.7...3.8.1

    Source code(tar.gz)
    Source code(zip)
  • 3.8(Dec 3, 2022)

  • 3.7(Sep 25, 2022)

    What's Changed

    • Fix JS linting error from pre-commit. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1670
    • Use system font stack in the toolbar by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1672
    • Profiling panel improvements by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1669
    • added functionality to keep unsort the session dict by @ritiksoni00 in https://github.com/jazzband/django-debug-toolbar/pull/1673

    New Contributors

    • @ritiksoni00 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1673

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.6...3.7

    Source code(tar.gz)
    Source code(zip)
  • 3.6(Aug 23, 2022)

    What's Changed

    • Remove unused import from installation.rst by @jonatron in https://github.com/jazzband/django-debug-toolbar/pull/1648
    • Check if djdt-store-id is in all headers before usage. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1651
    • docs: Fix a few typos by @timgates42 in https://github.com/jazzband/django-debug-toolbar/pull/1652
    • Make Selenium tests pass, hopefully by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1655
    • Add Django 4.1 to classifiers by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1656
    • Remove signed_data_view decorator to support url type checking. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1658
    • Upgrade GitHub Actions by @cclauss in https://github.com/jazzband/django-debug-toolbar/pull/1660
    • Fix #1662: Avoid assigning arbitrary attributes to SafeString instances by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1663

    New Contributors

    • @jonatron made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1648
    • @timgates42 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1652

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.5...3.6

    Source code(tar.gz)
    Source code(zip)
  • 3.5(Jun 24, 2022)

    What's Changed

    • Explicit external link, hopefully fixes the docs linting action by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1618
    • [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in https://github.com/jazzband/django-debug-toolbar/pull/1617
    • Add the upcoming Django 4.1 to the CI matrix by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1623
    • Remove a couple of archived third-party repos by @cclauss in https://github.com/jazzband/django-debug-toolbar/pull/1622
    • Replace OrderedDict by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1625
    • Fix #1621: Do not crash when encountering unexpected data in the request by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1624
    • Cache panel work by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1626
    • Get PostgreSQL transaction tracking working by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1619
    • Add pyflame to the list of third-party panels by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1628
    • Fix cache panel miss counting by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1629
    • Stacktrace cleanups by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1630
    • Increase minimum coverage percentage to 93% by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1632
    • Stack trace rework by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1631
    • Minor documentation updates by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1634
    • Reimplement HIDE_IN_STACKTRACES machinery by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1635
    • Rework similary/duplicate query grouping by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1636
    • Simplify SQLPanel._queries data structure by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1638
    • Tweak get_stack_trace() API by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1637

    New Contributors

    • @cclauss made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1622

    And thank you @living180 for the plethora of PRs this release.

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.4...3.5

    Source code(tar.gz)
    Source code(zip)
  • 3.4(May 3, 2022)

    What's Changed

    • The path may not always be a true path for stacktraces. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1613
    • Add changelog for unpacking error when rendering stacktrace. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1614
    • Rename SQLPanel context var to control SQL access. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1615

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.3...3.4

    Source code(tar.gz)
    Source code(zip)
  • 3.3(May 3, 2022)

    What's Changed

    • Drop support for Django 3.1 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1548
    • Drop support for Django 2.2 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1551
    • Added MrBenn Panel to Third Party Panels by @robertispas in https://github.com/jazzband/django-debug-toolbar/pull/1554
    • Add pyupgrade and django-upgrade pre-commit hooks by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1553
    • Documentation fix in installation.rst by @angusholder in https://github.com/jazzband/django-debug-toolbar/pull/1555
    • Don't raise W006 warning when app loader is specified. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1556
    • Remove codecov, solely use coverage. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1542
    • Remove the codecov badge, we're not using codecov anymore by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1557
    • Move settings reset logic to settings module. by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1559
    • Avoid installing middleware if Content-Encoding is set at all by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1560
    • Test middleware not injecting when Content-Encoding is set by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1562
    • Ignore all coverage files from Git by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1563
    • Specify code coverage as a static value. by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1558
    • Fix #1565 Remove Python 3.6 due to EOL by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1566
    • Implement CacheStatTracker.get_or_set by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1570
    • Optimize render_stacktrace() by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1571
    • Remove unnecessary mock dependency by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1572
    • Optimize SQL reformatting by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1574
    • Fix USE_TZ RemovedInDjango50Warning by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1573
    • Fix #1581: Duplicate the 'djdt' app_name to avoid importing the toolbar early by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1582
    • unsigning history forms by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1583
    • adding a green flash to new rows in the history table on refresh by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1578
    • Adding Update on ajax feature by @gone in https://github.com/jazzband/django-debug-toolbar/pull/1577
    • Fix link to pre-commit homepage by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1589
    • Order History panels requests descending chronologically. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1587
    • Single source 'djdt' app name by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1588
    • Various minor documentation fixes by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1592
    • Fix Docker instruction when host IP has more than 1 digit by @RomainGehrig in https://github.com/jazzband/django-debug-toolbar/pull/1594
    • Fix sql recording for async views by @bellini666 in https://github.com/jazzband/django-debug-toolbar/pull/1585
    • Preserve logs that LoggingPanel would previously overwrite by @riwatt in https://github.com/jazzband/django-debug-toolbar/pull/1603
    • Fix and improve .assertValidHTML() test method by @living180 in https://github.com/jazzband/django-debug-toolbar/pull/1597

    New Contributors

    • @robertispas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1554
    • @angusholder made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1555
    • @RomainGehrig made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1594
    • @bellini666 made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1585
    • @riwatt made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1603

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.4...3.3

    Source code(tar.gz)
    Source code(zip)
  • 3.2.4(Dec 15, 2021)

    What's Changed

    • Revert PR 1426 - PostGIS param stripping. This was removing leading and trailing characters from string typed parameters for postgres applications.

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.3...3.2.4

    Source code(tar.gz)
    Source code(zip)
  • 3.2.3(Dec 12, 2021)

    What's Changed

    • Update translations and revert xgettext aliasing. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1494
    • Utilize pre-commit to help devs follow style guidelines by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1495
    • Changed cache monkey-patching for Django 3.2+ by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1497
    • Add check and docs for TEMPLATES APP_DIRS=False. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1498
    • Update tox and github actions. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1500
    • Possibly fix an infinite recursion crash by avoid str() inside repr() by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1507
    • Add Django 4.0a1 to tox.ini by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1508
    • Fix transifex link (net -> com) by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1510
    • Add support for Python 3.10 by @joshuadavidthomas in https://github.com/jazzband/django-debug-toolbar/pull/1511
    • Additional readme warning when using docker by @daniel-butler in https://github.com/jazzband/django-debug-toolbar/pull/1294
    • Fix SQL selected / SQL explain for gis queries by @jieter in https://github.com/jazzband/django-debug-toolbar/pull/1426
    • Allow using ProfilingPanel as non last panel by @noamkush in https://github.com/jazzband/django-debug-toolbar/pull/1299
    • Update tox.ini by @auvipy in https://github.com/jazzband/django-debug-toolbar/pull/1519
    • Solve spelling mistake in documentation installation page by @mahbd in https://github.com/jazzband/django-debug-toolbar/pull/1520
    • Add Python 3.10 test pipeline for Django 3.2 by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1521
    • Run CI tests weekly. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1523
    • Fix test_param_conversion for Django 4.1 and mysql by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1526
    • Remove settings import from install instructions. by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1528
    • Add a big warning regarding the security implications of changing SHOW_TOOLBAR_CALLBACK by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1530
    • Update Django 4.0 version in tox.ini to RC1 by @pauloxnet in https://github.com/jazzband/django-debug-toolbar/pull/1531
    • Improve installation instructions by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1533
    • Fix settings docs by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1534
    • Use only pre-commit for style linters and fixers by @adamchainz in https://github.com/jazzband/django-debug-toolbar/pull/1535
    • Update translations for a bunch of languages. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1525
    • Update DE locale by @Baltrunas in https://github.com/jazzband/django-debug-toolbar/pull/1505
    • Discourage insecure SHOW_TOOLBAR_CALLBACK values by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1539
    • Create urls module and remove import package from docs. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1537

    New Contributors

    • @joshuadavidthomas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1511
    • @pre-commit-ci made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1512
    • @jazzband-bot made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1516
    • @daniel-butler made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1294
    • @noamkush made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1299
    • @auvipy made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1519
    • @mahbd made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1520
    • @pauloxnet made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1531
    • @Baltrunas made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1505

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.2...3.2.3

    Source code(tar.gz)
    Source code(zip)
  • 3.2.2(Oct 26, 2021)

    What's Changed

    • Use current_thread instead of currentThread method that was deprecated in Python 3.10 by @tirkarthi in https://github.com/jazzband/django-debug-toolbar/pull/1465
    • Drop support for Django 3.0. by @hramezani in https://github.com/jazzband/django-debug-toolbar/pull/1461
    • Support JS events when loading a panel. by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1441
    • Use twine to check generated package and readme by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1468
    • Use default app config discovery by @francoisfreitag in https://github.com/jazzband/django-debug-toolbar/pull/1467
    • Show template context on included templates by @gilmrjc in https://github.com/jazzband/django-debug-toolbar/pull/1436
    • Keep the toolbar handle in bounds by @matthiask in https://github.com/jazzband/django-debug-toolbar/pull/1472
    • Fixes #1239 by @saemideluxe in https://github.com/jazzband/django-debug-toolbar/pull/1475
    • Extract common base cursor wrapper class by @jayaddison in https://github.com/jazzband/django-debug-toolbar/pull/1479
    • updated Slovak translation by @eriktelepovsky in https://github.com/jazzband/django-debug-toolbar/pull/1480
    • Fixes and improvements to history views by @ashwch in https://github.com/jazzband/django-debug-toolbar/pull/1484
    • Add test coverage to ensure that SQL tracker wrappers are applied only once to database cursors by @jayaddison in https://github.com/jazzband/django-debug-toolbar/pull/1478
    • Correct RENDER_PANELS functionality and when enabled disable HistoryPanel by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1440
    • Add: response status to HistoryPanel by @psacawa in https://github.com/jazzband/django-debug-toolbar/pull/1490
    • Support for request-level urlconf overrides by @NielkS in https://github.com/jazzband/django-debug-toolbar/pull/1488
    • Version 3.2.2 by @tim-schilling in https://github.com/jazzband/django-debug-toolbar/pull/1492

    New Contributors

    • @tirkarthi made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1465
    • @saemideluxe made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1475
    • @jayaddison made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1479
    • @eriktelepovsky made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1480
    • @ashwch made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1484
    • @psacawa made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1490
    • @NielkS made their first contribution in https://github.com/jazzband/django-debug-toolbar/pull/1488

    Full Changelog: https://github.com/jazzband/django-debug-toolbar/compare/3.2.1...3.2.2

    Source code(tar.gz)
    Source code(zip)
An improbable web debugger through WebSockets

wdb - Web Debugger Description wdb is a full featured web debugger based on a client-server architecture. The wdb server which is responsible of manag

Kozea 1.6k Dec 09, 2022
Debugger capable of attaching to and injecting code into python processes.

DISCLAIMER: This is not an official google project, this is just something I wrote while at Google. Pyringe What this is Pyringe is a python debugger

Google 1.6k Dec 15, 2022
A drop-in replacement for Django's runserver.

About A drop in replacement for Django's built-in runserver command. Features include: An extendable interface for handling things such as real-time l

David Cramer 1.3k Dec 15, 2022
Dahua Console, access internal debug console and/or other researched functions in Dahua devices.

Dahua Console, access internal debug console and/or other researched functions in Dahua devices.

bashis 156 Dec 28, 2022
Tracing instruction in lldb debugger.Just a python-script for lldb.

lldb-trace Tracing instruction in lldb debugger. just a python-script for lldb. How to use it? Break at an address where you want to begin tracing. Im

156 Jan 01, 2023
Visual Interaction with Code - A portable visual debugger for python

VIC Visual Interaction with Code A simple tool for debugging and interacting with running python code. This tool is designed to make it easy to inspec

Nathan Blank 1 Nov 16, 2021
A gdb-like Python3 Debugger in the Trepan family

Abstract Features More Exact location information Debugging Python bytecode (no source available) Source-code Syntax Colorization Command Completion T

R. Bernstein 126 Nov 24, 2022
Cyberbrain: Python debugging, redefined.

Cyberbrain1(电子脑) aims to free programmers from debugging.

laike9m 2.3k Jan 07, 2023
AryaBota: An app to teach Python coding via gradual programming and visual output

AryaBota An app to teach Python coding, that gradually allows students to transition from using commands similar to natural language, to more Pythonic

5 Feb 08, 2022
Winpdb Reborn - A GPL Python Debugger, reborn from the unmaintained Winpdb

Note from Philippe Fremy The port of winpdb-reborn to Python 3 / WxPython 4 is unfortunately not working very well. So Winpdb for Python 3 does not re

Philippe F 84 Dec 22, 2022
A powerful set of Python debugging tools, based on PySnooper

snoop snoop is a powerful set of Python debugging tools. It's primarily meant to be a more featureful and refined version of PySnooper. It also includ

Alex Hall 874 Jan 08, 2023
Full featured multi arch/os debugger built on top of PyQt5 and frida

Full featured multi arch/os debugger built on top of PyQt5 and frida

iGio90 1.1k Dec 26, 2022
pdb++, a drop-in replacement for pdb (the Python debugger)

pdb++, a drop-in replacement for pdb What is it? This module is an extension of the pdb module of the standard library. It is meant to be fully compat

1k Dec 24, 2022
Graphical Python debugger which lets you easily view the values of all evaluated expressions

birdseye birdseye is a Python debugger which records the values of expressions in a function call and lets you easily view them after the function exi

Alex Hall 1.5k Dec 24, 2022
A web-based visualization and debugging platform for NuPIC

Cerebro 2 A web-based visualization and debugging platform for NuPIC. Usage Set up cerebro2.server to export your model state. Then, run: cd static py

Numenta 24 Oct 13, 2021
Trashdbg - TrashDBG the world's worse debugger

The world's worse debugger Over the course of multiple OALABS Twitch streams we

OALabs 21 Jun 17, 2022
A simple rubber duck debugger

Rubber Duck Debugger I found myself many times asking a question on StackOverflow or to one of my colleagues just for finding the solution simply by d

1 Nov 10, 2021
Auto-detecting the n+1 queries problem in Python

nplusone nplusone is a library for detecting the n+1 queries problem in Python ORMs, including SQLAlchemy, Peewee, and the Django ORM. The Problem Man

Joshua Carp 837 Dec 29, 2022
Little helper to run Steam apps under Proton with a GDB debugger

protongdb A small little helper for running games with Proton and debugging with GDB Requirements At least Python 3.5 protontricks pip package and its

Joshie 21 Nov 27, 2022
EDB 以太坊单合约交易调试工具

EDB 以太坊单合约交易调试工具 Idea 在刷题的时候遇到一类JOP(Jump-Oriented-Programming)的题目,fuzz或者调试这类题目缺少简单易用的工具,由此开发了一个简单的调试工具EDB(The Ethereum Debugger),利用debug_traceTransact

16 May 21, 2022