[英]How to debug python code running inside exec()
我正在尝试调试我在 exec 命令中运行的插件代码
有没有办法以某种方式调试它? 例如:
code='''
breakpoint()
foo=5
print(foo)
'''
exec(code)
我想在打印 foo 之前停止,然后执行list
(pdb) 命令并查看代码
In [8]: code='import ipdb\nnfoo=5\nipdb.set_trace()\nprint(nfoo**2)'
In [9]: exec(code)
> <string>(4)<module>()
ipdb> nfoo
5
ipdb> nfoo = 6
ipdb> c
36
在ipdb.set_trace()
之后,ipdb 将启动。 您可以使用 go 到下一个中断使用c
或使用n
到下一行。 检查以下小抄: 小抄
code='import ipdb\nnfoo=5\nipdb.set_trace()\nprint(nfoo**2)'
In [13]: exec(code)
None
> <string>(4)<module>()
ipdb> nfoo
5
ipdb> nfoo = 6
ipdb> n
36
注意:将代码放在“”“”“”中更容易。
在 pudb 中找到它,我可以添加:
_MODULE_SOURCE_CODE = code
或者
linecache.lazycache("<path>/code.py",module_globals= None)
或者
linecache.cache[self.path] = (len(code), None, code.splitlines(True), path)
或者在 VScode 中,我可以将文件添加到 vscode 可以找到它的地方并设置:
"justMyCode": false,
在 launch.json 文件中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.