当已经处于pdb模式时,pdb进入功能

时间:2019-10-08 08:46:01

标签: python pdb

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

1 个答案:

答案 0 :(得分:2)

您可能正在寻找state = { status: false, } handleChange = (event) => { this.setState({ [event.target.id]: event.target.checked }); } <Form.Check type="checkbox" label="Consigne temporaire" checked={this.state.status} onChange={this.handleChange} /> 命令:它s提示您进入下一个功能。

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