Skip to content

Python module that enables automatic post mortem debugging upon any exception.

Notifications You must be signed in to change notification settings

MichalPodeszwa/autodebug

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Auto-Debugger

Overview

This is a simple module which enables you to have automatic post-mortem debugging as simply as possible

Usage

Install it using pip install autodebug.

Then in your Python script, before the possible exception write

import autodebug

Then if any uncaught exception happens, you'll be immediately transferred to debugger. Exactly the moment before the exception occured. So you'll have access to all variables and everything.

Debugger

You can specify which Python debugger you want to use.

To do that simply set the environmental variable AUTO_DEBUG. Possible debuggers currently are:

  • pdb for built-in Python debugger
  • ipdb for ipdb Python debugger
  • pudb for full-screen console Python debugger.

If you do not set the variable, pdb will be used, as it is built-in.

Post notes

  • Please note that this module uses custom sys.excepthook, so if you are using your own, this module will not work, or will overwrite your excepthook (This depends on order of import and setting your own excepthook)
  • In order to make it work with uwsgi you have to pass --honour-stdin to uwsgi configuration. This will make it possible to debug uwsgi applications!. But keep in mind, that if you've got more than 1 worker, and multiple people are using your application, the terminal output will be ugly.
  • The debugger won't start if it is imported inside interactive console, so it may not work in some IDEs. Experiment yourself, however it is adviced to start your programs using command line.

About

Python module that enables automatic post mortem debugging upon any exception.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages