Don't have trace() skip the top frame; return them all.
authorKa-Ping Yee <ping@zesty.ca>
Fri, 23 Mar 2001 05:14:10 +0000 (05:14 +0000)
committerKa-Ping Yee <ping@zesty.ca>
Fri, 23 Mar 2001 05:14:10 +0000 (05:14 +0000)
Lib/inspect.py
Lib/test/test_inspect.py

index 57f991c59812f40e70e4e7d3a172dad037afbda1..ef813a61f5e355d315d81dc15518ab2820ce1579 100644 (file)
@@ -620,7 +620,6 @@ def getinnerframes(tb, context=1):
 
     Each record contains a frame object, filename, line number, function
     name, a list of lines of context, and index within the context."""
-    tb = tb.tb_next
     framelist = []
     while tb:
         framelist.append((tb.tb_frame,) + getframeinfo(tb, context))
index fd4f12b4ad78468c43b8c86a55d9164c40f1191b..130fa8ef7350b5c243e2a34e0d66d5ddb87b1c09 100644 (file)
@@ -169,11 +169,14 @@ git.abuse(7, 8, 9)
 istest(inspect.istraceback, 'git.ex[2]')
 istest(inspect.isframe, 'mod.fr')
 
-test(len(git.tr) == 2, 'trace() length')
-test(git.tr[0][1:] == (TESTFN, 9, 'spam', ['    eggs(b + d, c + f)\n'], 0),
-     'trace() row 1')
-test(git.tr[1][1:] == (TESTFN, 18, 'eggs', ['    q = y / 0\n'], 0),
+test(len(git.tr) == 3, 'trace() length')
+test(git.tr[0][1:] == (TESTFN, 46, 'argue',
+                       ['            self.tr = inspect.trace()\n'], 0),
      'trace() row 2')
+test(git.tr[1][1:] == (TESTFN, 9, 'spam', ['    eggs(b + d, c + f)\n'], 0),
+     'trace() row 2')
+test(git.tr[2][1:] == (TESTFN, 18, 'eggs', ['    q = y / 0\n'], 0),
+     'trace() row 3')
 
 test(len(mod.st) >= 5, 'stack() length')
 test(mod.st[0][1:] ==
@@ -188,7 +191,6 @@ test(mod.st[2][1:] ==
 test(mod.st[3][1:] ==
      (TESTFN, 39, 'abuse', ['        self.argue(a, b, c)\n'], 0),
      'stack() row 4')
-# row 4 is in test_inspect.py
 
 args, varargs, varkw, locals = inspect.getargvalues(mod.fr)
 test(args == ['x', 'y'], 'mod.fr args')