X-Git-Url: https://git.phdru.name/?a=blobdiff_plain;f=lib%2Fpython%2Fpdbrc.py;h=97bd40115cc971d9f286757e6e961333a1e67dc0;hb=59e5881d91c20244b189a8899a02cd01bc127af3;hp=0e67e51600fa4938211700f7adac173afc1e3a1a;hpb=f46bd4d41cc7f243bc8a321effee5200aa69e709;p=dotfiles.git diff --git a/lib/python/pdbrc.py b/lib/python/pdbrc.py index 0e67e51..97bd401 100644 --- a/lib/python/pdbrc.py +++ b/lib/python/pdbrc.py @@ -1,42 +1,63 @@ -# Command line history: -import os, readline -histfile = os.path.expanduser("~/.pdb-history") - -try: - readline.read_history_file(histfile) -except IOError: - pass - -def savehist(histfile=histfile): - import os, readline - histfilesize = os.environ.get('HISTFILESIZE') or \ - os.environ.get('HISTSIZE') - if histfilesize: - try: - histfilesize = int(histfilesize) - except ValueError: - pass - else: - readline.set_history_length(histfilesize) - readline.write_history_file(histfile) - -import atexit -atexit.register(savehist) - -# return to debugger after fatal exception (Python cookbook 14.5): -import sys -def info(type, value, tb): - if hasattr(sys, 'ps1') or not sys.stderr.isatty(): - sys.__excepthook__(type, value, tb) - import traceback, pdb - traceback.print_exception(type, value, tb) - print - pdb.pm() -sys.excepthook = info +# This is startup file for interactive python debugger pdb. +# Use it like this in ~/.pdbrc: +# import os +# x = execfile("pdbrc.py") +# See http://wiki.python.org/moin/PdbRcIdea + +def init(): + import atexit + import os + import sys + import readline + + # Command line history: + histfile = os.path.expanduser("~/.pdb_history") + + try: + readline.read_history_file(histfile) + except IOError: + pass + + + def savehist(histfile=histfile): + import os + import readline + + histfilesize = os.environ.get('HISTFILESIZE') \ + or os.environ.get('HISTSIZE') + if histfilesize: + try: + histfilesize = int(histfilesize) + except ValueError: + pass + else: + readline.set_history_length(histfilesize) + readline.write_history_file(histfile) + + atexit.register(savehist) + + + def info(type, value, tb): + # return to debugger after fatal exception (Python cookbook 14.5): + import pdb + import sys + import traceback + + if hasattr(sys, 'ps1') or not sys.stderr.isatty(): + sys.__excepthook__(type, value, tb) + traceback.print_exception(type, value, tb) + print + pdb.pm() + + sys.excepthook = info + +init() # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/498182 -import pdb, rlcompleter -pdb.Pdb.complete = rlcompleter.Completer().complete +# https://github.com/giampaolo/sysconf/blob/master/home/.pdbrc.py +import pdb +import rlcompleter +pdb.Pdb.complete = rlcompleter.Completer(locals()).complete # Cleanup any variables that could otherwise clutter up the namespace. -del atexit, info, os, pdb, readline, rlcompleter, savehist, sys +del pdb, readline, rlcompleter