..

python ipdb的使用

基本命令

ipdb> ll
list 打印当前附近的源码;
ipdb> c
continue 继续执行,直到遇到断点或者退出;
ipdb> s
step, 单步调试,遇到函数调用会进入函数内部;
ipdb> n
next, 也是单步调试,不过遇到函数调用会当成一步跳过;
ipdb> r
return, 继续执行直到本次函数调用的 return 部分;
ipdb> w
where, 打印出调用栈;
ipdb> h
help, 打印全部命令。如果加上参数,会打印对应命令的帮助信息;

根据变量条件动态断点

pdb/ipdb for python break on editable condition 的回答。

比如:

ipdb> b 99, key == 'order'

其含义就是:在第 99 行设置一个断点,当变量 key 的值等于 ‘order’ 时触发。

运行 pytest 的时候能进入断点

加上 -s 参数,如:

> pytest -s test_abc.py