用 ipdb 调试 Python 程序

写篇文章记录一下。Vim 党必备。

安装

pip install ipdb

使用

1、改代码

import ipdb
import sys
def add(num1=0, num2=0):
    return int(num1) + int(num2)
def sub(num1=0, num2=0):
    return int(num1) - int(num2)
def main():
    # Assuming our inputs are valid numbers
    ipdb.set_trace()  # Break point added here
    addition = add(sys.argv[1], sys.argv[2])
    print addition
    subtraction = sub(sys.argv[1], sys.argv[2])
    print subtraction
if __name__ == '__main__':
    main()

在想要断点的地方加上 ipdb.set_trace()

2、进入调试状态

直接运行程序,会停在断点处

常用命令

  • help,帮助
  • list 或 l,显示当前行的上下文
  • next 或 n,下一步(step over)
  • step 或 s,进入函数内部(step in)
  • p 或 pp(+变量名),打印变量的值
  • break 或 b,打断点
  • continue 或 c,继续执行
  • return 或 r,执行代码直到从当前函数返回
  • exit 或 q,终止并退出

详解:

help,帮助

list 或 l,显示当前行的上下文

next 或 n,下一步(step over)

p 或 pp(+变量名),打印变量的值

break 或 b,打断点

step 或 s,进入函数内部(step in)

return 或 r,执行代码直到从当前函数返回

continue 或 c,继续执行

exit 或 q,终止并退出

 

参考文章:

零基础学习PDB命令行调试Python代码
python调试:pdb基本用法