|
|
# -*- coding: utf-8 -*-
|
|
|
"""
|
|
|
Pdb debugger class.
|
|
|
|
|
|
Modified from the standard pdb.Pdb class to avoid including readline, so that
|
|
|
the command line completion of other programs which include this isn't
|
|
|
damaged.
|
|
|
|
|
|
In the future, this class will be expanded with improvements over the standard
|
|
|
pdb.
|
|
|
|
|
|
The code in this file is mainly lifted out of cmd.py in Python 2.2, with minor
|
|
|
changes. Licensing should therefore be under the standard Python terms. For
|
|
|
details on the PSF (Python Software Foundation) standard license, see:
|
|
|
|
|
|
http://www.python.org/2.2.3/license.html
|
|
|
|
|
|
$Id: Debugger.py 590 2005-05-30 06:26:51Z fperez $"""
|
|
|
|
|
|
from IPython import Release
|
|
|
__author__ = '%s <%s>' % Release.authors['Fernando']
|
|
|
__license__ = 'Python'
|
|
|
|
|
|
import pdb,bdb,cmd,os,sys
|
|
|
|
|
|
class Pdb(pdb.Pdb):
|
|
|
"""Modified Pdb class, does not load readline."""
|
|
|
def __init__(self):
|
|
|
bdb.Bdb.__init__(self)
|
|
|
cmd.Cmd.__init__(self,completekey=None) # don't load readline
|
|
|
self.prompt = '(Pdb) '
|
|
|
self.aliases = {}
|
|
|
|
|
|
# Read $HOME/.pdbrc and ./.pdbrc
|
|
|
self.rcLines = []
|
|
|
if os.environ.has_key('HOME'):
|
|
|
envHome = os.environ['HOME']
|
|
|
try:
|
|
|
rcFile = open(os.path.join(envHome, ".pdbrc"))
|
|
|
except IOError:
|
|
|
pass
|
|
|
else:
|
|
|
for line in rcFile.readlines():
|
|
|
self.rcLines.append(line)
|
|
|
rcFile.close()
|
|
|
try:
|
|
|
rcFile = open(".pdbrc")
|
|
|
except IOError:
|
|
|
pass
|
|
|
else:
|
|
|
for line in rcFile.readlines():
|
|
|
self.rcLines.append(line)
|
|
|
rcFile.close()
|
|
|
|