gpt4 book ai didi

python - 在 pdb(python 调试器)中,我可以在内置函数上设置断点吗?

转载 作者:行者123 更新时间:2023-12-03 20:58:19 26 4
gpt4 key购买 nike

我想在 set.update() 函数上设置断点,但是当我尝试时,我收到一条错误消息。

例子:

ss= set()
ss.update('a')

断点:
b set.update
b ss.update

错误:
The specified object 'ss.update' is not a function
or was not found along sys.path.

The specified object 'set.update' is not a function
or was not found along sys.path.

(注意,我也尝试在末尾使用括号,例如 b set.update() ,但仍然出现错误。我没有打印所有错误排列。)

最佳答案

谢谢!使用@avasal 的回答和 Doug Hellmann's pdb webpage ,我想出了这个:

由于我试图捕捉 set.update,我不得不编辑 set.py 文件,但这还不够,因为 python 使用的是内置 set 类而不是我编辑的那个。所以我覆盖了内置集类:

import sets
locals()['__builtins__'].set=sets.Set

然后我可以在调试器中设置条件断点:
b set.update, iterable=='a' #successful
b set.update, iterable=='b' #won't stop for ss.update('a')

我的整个示例文件如下所示:
import pdb
import sets
locals()['__builtins__'].set=sets.Set

pdb.set_trace()
ss = set()
ss.update('a')

print "goodbye cruel world"

然后在调试器提示符下输入:
b set.update, iterable=='a'

希望这对其他人也有帮助。

关于python - 在 pdb(python 调试器)中,我可以在内置函数上设置断点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59732204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com