summaryrefslogtreecommitdiff
path: root/Lib/pdb.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2010-10-14 07:14:31 +0000
committerGeorg Brandl <georg@python.org>2010-10-14 07:14:31 +0000
commit9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6 (patch)
tree19f2c606ff075358e1ae2a3139514e7faedc7745 /Lib/pdb.py
parent66c221e993bf7c5979145dbbe365238f2d70064f (diff)
downloadcpython-git-9e7dbc8a708f9f5f29fb527f9e01b1d31a7f09a6.tar.gz
#9964: fix pdb failure to import under -OO. Warn the user that help is simply not available in this case.
Diffstat (limited to 'Lib/pdb.py')
-rwxr-xr-xLib/pdb.py35
1 files changed, 20 insertions, 15 deletions
diff --git a/Lib/pdb.py b/Lib/pdb.py
index 83ff585c61..9a91af6a53 100755
--- a/Lib/pdb.py
+++ b/Lib/pdb.py
@@ -1261,6 +1261,10 @@ class Pdb(bdb.Bdb, cmd.Cmd):
except AttributeError:
self.error('No help for %r' % arg)
else:
+ if sys.flags.optimize >= 2:
+ self.error('No help for %r; please do not run Python with -OO '
+ 'if you need command help' % arg)
+ return
self.message(command.__doc__.rstrip())
do_h = do_help
@@ -1275,7 +1279,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
(Pdb) global list_options; list_options = ['-l']
(Pdb)
"""
- self.message(self.help_exec.__doc__.strip())
+ self.message((self.help_exec.__doc__ or '').strip())
def help_pdb(self):
help()
@@ -1332,23 +1336,24 @@ class Pdb(bdb.Bdb, cmd.Cmd):
(fp.read(), self.mainpyfile)
self.run(statement)
-# Collect all command help into docstring
+# Collect all command help into docstring, if not run with -OO
+
+if __doc__ is not None:
+ # unfortunately we can't guess this order from the class definition
+ _help_order = [
+ 'help', 'where', 'down', 'up', 'break', 'tbreak', 'clear', 'disable',
+ 'enable', 'ignore', 'condition', 'commands', 'step', 'next', 'until',
+ 'jump', 'return', 'retval', 'run', 'continue', 'list', 'longlist',
+ 'args', 'print', 'pp', 'whatis', 'source', 'alias', 'unalias',
+ 'debug', 'quit',
+ ]
-# unfortunately we can't guess this order from the class definition
-_help_order = [
- 'help', 'where', 'down', 'up', 'break', 'tbreak', 'clear', 'disable',
- 'enable', 'ignore', 'condition', 'commands', 'step', 'next', 'until',
- 'jump', 'return', 'retval', 'run', 'continue', 'list', 'longlist',
- 'args', 'print', 'pp', 'whatis', 'source', 'alias', 'unalias',
- 'debug', 'quit',
-]
+ for _command in _help_order:
+ __doc__ += getattr(Pdb, 'do_' + _command).__doc__.strip() + '\n\n'
+ __doc__ += Pdb.help_exec.__doc__
-docs = set()
-for _command in _help_order:
- __doc__ += getattr(Pdb, 'do_' + _command).__doc__.strip() + '\n\n'
-__doc__ += Pdb.help_exec.__doc__
+ del _help_order, _command
-del _help_order, _command
# Simplified interface