@@ -301,22 +301,38 @@ def write(self, data):
301301line_prefix = '\n -> ' # Probably a better default
302302
303303
304+ # The default backend to use for Pdb instances if not specified
305+ # Should be either 'settrace' or 'monitoring'
306+ _default_backend = 'settrace'
307+
308+
309+ def set_default_backend (backend ):
310+ """Set the default backend to use for Pdb instances."""
311+ global _default_backend
312+ if backend not in ('settrace' , 'monitoring' ):
313+ raise ValueError ("Invalid backend: %s" % backend )
314+ _default_backend = backend
315+
316+
317+ def get_default_backend ():
318+ """Get the default backend to use for Pdb instances."""
319+ return _default_backend
320+
304321
305322class Pdb (bdb .Bdb , cmd .Cmd ):
306323 _previous_sigint_handler = None
307324
308325 # Limit the maximum depth of chained exceptions, we should be handling cycles,
309326 # but in case there are recursions, we stop at 999.
310327 MAX_CHAINED_EXCEPTION_DEPTH = 999
311- DEFAULT_BACKEND = 'settrace'
312328
313329 _file_mtime_table = {}
314330
315331 _last_pdb_instance = None
316332
317333 def __init__ (self , completekey = 'tab' , stdin = None , stdout = None , skip = None ,
318334 nosigint = False , readrc = True , mode = None , backend = None ):
319- bdb .Bdb .__init__ (self , skip = skip , backend = backend if backend else self . DEFAULT_BACKEND )
335+ bdb .Bdb .__init__ (self , skip = skip , backend = backend if backend else get_default_backend () )
320336 cmd .Cmd .__init__ (self , completekey , stdin , stdout )
321337 sys .audit ("pdb.Pdb" )
322338 if stdout :
0 commit comments