Importing this module enables automatic post mortem debugging upon any exception. It uses module specified in envvar
This is a simple module which enables you to have automatic post-mortem debugging as simply as possible
Install it using pip install autodebug.
Then in your Python script, before the possible exception write
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.
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.
- 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.