Skip to content

bdb Module

The bdb module provides a generic debugger framework that higher-level debuggers like pdb build upon.

Complexity Reference

Operation Time Space Notes
Bdb() setup O(1) O(1) Initialize debugger
Set breakpoint O(1) O(1) Register break
Continue O(n) O(n) n = instructions

Debugger Framework

Creating Custom Debugger

import bdb

class MyDebugger(bdb.Bdb):
    def user_line(self, frame):
        # Called at each line - O(1)
        print(f"Line {frame.f_lineno}: {frame.f_code.co_name}")

    def user_return(self, frame, return_value):
        # Called on return - O(1)
        print(f"Returning: {return_value}")

# Use debugger - O(n)
debugger = MyDebugger()
debugger.run('function_to_debug()')