[英]How to use pdb(Python debugger) in vscode IDE's debugger?
[英]How do you skip over a list comprehension in Python's debugger (pdb)?
在pdb
中, next
条指令不会跳过列表推导,而是逐步完成每次迭代。 有没有办法跳过它们,以便在列表理解后的下一行继续调试?
我不得不求助于列出代码,在下一行设置断点,然后继续执行到下一个断点。 这很烦人,我认为必须有更好的方法。
您可以使用until
命令。 Output 的help until
在pdb
中:
直到)
继续执行,直到到达数字大于当前行的行或直到当前帧返回
详细说明 Sven 的回复,正如我最近在一位同事until
和next
所描述的那样。 它不是针对下一个stuck
的列表理解,而是针对一般的循环。:
until
命令类似于next
,只是它明确地继续执行,直到执行到达同一 function 中的行号高于当前值的行。
这意味着您可以使用until
跳过循环
为了完整起见,仅涵盖step
和next
:
step
命令用于执行当前行,然后在下一个执行点停止
这意味着它将逐条指令 go 指令。 注意用;
连接指令将作为一条指令处理。
var A=0; var B=0 #Note: that will count as one instruction
下一个命令类似于 step,但不输入从正在执行的语句中调用的函数。 实际上,它在单个操作中一直通过 function 调用到当前 function 中的下一条语句。
next
有助于跳过多个指令,在多个变量定义的 function 中,它将跳过所有指令。
这是一个演示场景的示例:
示例:pdb_until.py
aVar = 3
x = [i for i in range(0,30)]
bVar = 5
使用 Pdb 运行它:
python -m pdb pdb_until.py
启动我们的交互式 session:
> pdb_until.py(1)<module>()
-> aVar = 3
(Pdb) step #our Input, we step
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) next #our Input, next
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) next #our Input, we are now stuck on line 2
> pdb_until.py(2)<module>()
-> x = [i for i in range(0,10)]
(Pdb) until #our Input, until steps over (runs list comp)
资料来源:示例中的 Python 标准库,Doug Hellmann
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.