Implement --pdb in a python cli

waylonwalker

Waylon Walker

Posted on January 13, 2022

Implement --pdb in a python cli

Adding a --pdb flag to your applications can make them much easier for those using it to debug your application, especially if your applicatoin is a cli application where the user has much fewer options to start this for themselves. To add a pdb flag --pdb to your applications you will need to wrap your function call in a try/except, and start a post_mortem debugger. I give credit to this stack overflow post for helping me figure this out.

import pdb, traceback, sys


def bombs():
    a = []
    print(a[0])


if __name__ == "__main__":
    if "--pdb" in sys.argv:
        try:
            bombs()
        except:
            extype, value, tb = sys.exc_info()
            traceback.print_exc()
            pdb.post_mortem(tb)
    else:
        bombs()
Enter fullscreen mode Exit fullscreen mode

Using --pdb

python yourfile.py --pdb
Enter fullscreen mode Exit fullscreen mode

running this example with and without --pdb flag


This is day 22 of posting tils, These are bite sized pieces that help me cement in what I have learned thoughout the day. eventually they will make their way into larger form pieces.


Discuss

What do you think about --pdb do you like when cli's give you this option? Has it saved your bacon?

💖 💪 🙅 🚩
waylonwalker
Waylon Walker

Posted on January 13, 2022

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

How to Use KitOps with MLflow
beginners How to Use KitOps with MLflow

November 29, 2024

Configure python file in vscode
undefined Configure python file in vscode

November 30, 2024

Configure python file in vscode
undefined Configure python file in vscode

November 30, 2024