]> granicus.if.org Git - python/commitdiff
Two changes suggested by Andrew Kuchling:
authorGuido van Rossum <guido@python.org>
Tue, 30 Jul 1996 16:28:13 +0000 (16:28 +0000)
committerGuido van Rossum <guido@python.org>
Tue, 30 Jul 1996 16:28:13 +0000 (16:28 +0000)
- move compile() inside try-except
- add code so you can do "python pdb.py <script> <arg> ..." to debug <script>

Lib/pdb.py

index f44c7e08dda23834709b6b4d003537e5fb5a6fe5..60b34125665c328c13930fcc45fbb249fdfe7e17 100755 (executable)
@@ -1,3 +1,5 @@
+#! /usr/local/bin/python
+
 # pdb.py -- finally, a Python debugger!
 
 # (See pdb.doc for documentation.)
@@ -74,8 +76,8 @@ class Pdb(bdb.Bdb, cmd.Cmd):
                locals = self.curframe.f_locals
                globals = self.curframe.f_globals
                globals['__privileged__'] = 1
-               code = compile(line + '\n', '<stdin>', 'single')
                try:
+                       code = compile(line + '\n', '<stdin>', 'single')
                        exec code in globals, locals
                except:
                        if type(sys.exc_type) == type(''):
@@ -490,3 +492,17 @@ def help():
        else:
                print 'Sorry, can\'t find the help file "pdb.doc"',
                print 'along the Python search path'
+
+# When invoked as main program, invoke the debugger on a script
+if __name__=='__main__':
+       import sys
+       if not sys.argv[1:]:
+               print "usage: pdb.py scriptfile [arg] ..."
+               sys.exit(2)
+
+       # Get the module name and function name, if present
+       filename = sys.argv[1]
+
+       del sys.argv[0]
+
+       run('execfile(' + `filename` + ')', {'__name__': '__main__'})