已经在pdb模式下进入pdb的功能

问题描述 投票:0回答:1

在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问题和答案+查找了文档,但仍然没有找到任何可以解决这种特殊情况的方法。

python pdb
1个回答
2
投票

您可能正在寻找s命令:将s提示进入下一个功能。

在调试模式下,您可以使用h(帮助)查看所有可用命令。另请参阅the docs

© www.soinside.com 2019 - 2024. All rights reserved.