如何解决为什么 Python 的断点和 ipdb 会这样?
我习惯于使用 PyCharm 在 Python 中进行调试。
现在我正在尝试将 ipdb 与 Jupyter(准确地说是实验室)一起使用。
但是下面的两种行为真的让我很困惑!
第一个
breakpoint()
for i in range(3):
print(i)
然后在调试器中:
--Return--
None
> <ipython-input-10-45409e3598c5>(1)<module>()
----> 1 breakpoint()
2 for i in range(3):
3 print(i)
ipdb> n
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
[... skipped 1 hidden frame]
> c:\users\icar\anaconda3\envs\jlab3\lib\site-packages\ipython\core\interactiveshell.py(3349)run_ast_nodes()
3347 to_run.append((node,'single'))
3348
-> 3349 for node,mode in to_run:
3350 if mode == 'exec':
3351 mod = Module([node],[])
为什么 ipdb next 使 ipdb 在 run_ast_nodes 中停止?
它不应该等同于跨过吗?
第二个
for i in range(3):
breakpoint()
print(i)
然后在调试器中:
None
> <ipython-input-9-2b8431878fa0>(3)<module>()
1 for i in range(3):
2 breakpoint()
----> 3 print(i)
ipdb> c
0
None
> <ipython-input-9-2b8431878fa0>(2)<module>()
1 for i in range(3):
----> 2 breakpoint()
3 print(i)
ipdb> c
1
None
> <ipython-input-9-2b8431878fa0>(3)<module>()
1 for i in range(3):
2 breakpoint()
----> 3 print(i)
什么可以解释 ipdb continue 交替停在第 3 行,然后是第 2 行,然后是第 3 行?
我想我错过了一些东西,但我无法得到它,这只是基本的东西......
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。