在pdb模式下,我经常想进入一个函数。这是说明我可能会做的情况。给定代码:
def f(x):
print('doing important stuff..')
result = g(x) + 2
return result
def g(x):
print('some cool stuff going on here, as well')
0 / 0 # oops! a bug
return x + 5
现在,假设我在print('doing cool stuff')
和result = g(x) + 2
之间设置了一个断点。所以现在f(x)
看起来像这样:
def f(x):
print('doing important stuff..')
__import__('pdb').set_trace() # or something similar..
result = g(x) + 2
return result
然后我用f(x)
调用函数x=5
,期望得到结果12
。当被调用时,我在f
的第二行中进入交互式pdb会话。击中n
会给我错误(在这种情况下为ZeroDivisionError)。现在,我想以交互方式进入g(x)
函数,以查看错误可能是什么。是否可以在不“移动” g(x)
中的断点并重新运行所有内容的情况下做到这一点?我只想在仍处于pdb模式的第一行输入函数g
。
我已经搜索了以前的SO问题和答案+查找了文档,但仍然没有找到任何可以解决这种特殊情况的方法。
您可能正在寻找s
命令:将s
提示进入下一个功能。
在调试模式下,您可以使用h
(帮助)查看所有可用命令。另请参阅the docs。