]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
A working version of the 'args' command (it prints the current values
authorGuido van Rossum <guido@python.org>
Wed, 25 Feb 1998 20:50:32 +0000 (20:50 +0000)
committerGuido van Rossum <guido@python.org>
Wed, 25 Feb 1998 20:50:32 +0000 (20:50 +0000)
of the variables known to hold arguments, but that's as close as I can
get, and generally it's close enough).

Lib/pdb.py

index 0dc15a234aead7cc6d6a780b4e3c295607f60912..80aa54bf52d72adb6077bfd299dfb52735ab9e9d 100755 (executable)
@@ -201,10 +201,17 @@ class Pdb(bdb.Bdb, cmd.Cmd):
        do_q = do_quit
        
        def do_args(self, arg):
-               if self.curframe.f_locals.has_key('__args__'):
-                       print `self.curframe.f_locals['__args__']`
-               else:
-                       print '*** No arguments?!'
+               f = self.curframe
+               co = f.f_code
+               dict = f.f_locals
+               n = co.co_argcount
+               if co.co_flags & 4: n = n+1
+               if co.co_flags & 8: n = n+1
+               for i in range(n):
+                       name = co.co_varnames[i]
+                       print name, '=',
+                       if dict.has_key(name): print dict[name]
+                       else: print "*** undefined ***"
        do_a = do_args
        
        def do_retval(self, arg):
@@ -432,7 +439,7 @@ class Pdb(bdb.Bdb, cmd.Cmd):
 
        def help_a(self):
                print """a(rgs)
-       Print the argument list of the current function."""
+       Print the arguments of the current function."""
 
        def help_p(self):
                print """p expression