Issue
Consider the following code:
def inner(a):
if a == 75:
raise RuntimeError()
return a**2
def outer():
results = []
for a in range(100):
results.append(inner(a))
return results
outer()
In IPython, after the exception was raised, the %debug
line magic opens the python debugger at the scope of inner()
:
In [4]: %debug
> <ipython-input-3-eff43b15b2ef>(3)inner()
2 if a == 75:
----> 3 raise RuntimeError()
4 return a**2
ipdb> a
a = 75
ipdb> results
*** NameError: name 'results' is not defined
How can you tell (i)pdb to enter the scope of outer()
in order to save the results generated so far?
Solution
I don't think you can directly do it. However, once inside the debugger, you can easily type u
(for up) to move the current frame one level up and be inside the outer
function. See here for more informations on the commands.
Answered By - Sébastien Deprez
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.