[英]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.