使用ipdb调试python项目
前提
之前我调试python代码或者是项目的时候,用的都是print
来进行各种调试,这样显然不太方便(尤其是在处理python项目的时候)。于是我找到了ipdb
这个工具,它能帮助你更方便的、像C++一样逐行调试代码。
使用
-
安装:相当简单,
pip install ipdb
即可。 -
进入调试模式:
1
python -m ipdb project.py
-
常用命令:
字母 意义 b breakpoint,给程序某一行打断点,例如 b breakpoint_num
c 让程序运行到第一个断点那里 n next,单步运行下一行代码(不进入函数) s step,单步运行下一行代码(进入函数) q quit,退出调试器并终止程序 l 查看位置附近的代码 p print,打印变量的值 h help,查看帮助信息,例如 h command_name
u 向上移动一层调用栈 d 向下移动一层调用栈 -
另一种打断点方式:在要打断点的地方的上一行写上
1
2import ipdb
ipdb.set_trace()这样打断点的方式比较适合在有很多文件的python项目里面进行调试。
接下来就让我们实战一下吧!
例子
下面是一道leetcode的算法题题解,我们来利用ipdb调试它。
1 |
|
输入python -m ipdb project.py
开始调试。
- 首先我们的断点要设在第15行,所以有两种办法:
- 在命令行输入
b 10
- 在源代码中第15行加上
ipdb.set_trace()
,如下:1
2
3
4height = [1, 8, 6, 2, 5, 4, 8, 3, 7]
import ipdb
ipdb.set_trace()
max_water_area = solution.maxArea(height)
- 让程序运行到断点所在位置,指令为
c
; - 让调试进入类的内部,指令为
s
; - 在类内部调试,指令为
n+ENTER
,查看变量area
的值,指令为p area
; q
退出调试。
使用ipdb调试python项目
https://kingdom-of-warriors.github.io/2024/08/18/使用ipdb调试python项目/