python调试

如果很简单的程序,建议还是pirnt打出来。
对于Linux环境,使用pdb/ipdb是一个不错的选择。

安装ipdb

sudo pip install ipdb

开启调试

  1. 手动在需要调试的地方写入set_trace()

    import ipdb
    ipdb.set_trace()

    2.使用命令启动

    python -m ipdb fileNme.py 

功能简介

断点

- 设置 b lineNumber
- 查看 b
- 删除 cl [breakpoint Number]
- *条件断点 condition bpnumber [condition]
- *停用 disable bpNumber
- *激活 enable bpNumber

执行

- 执行(逐语句) s
- 执行(逐过程) n
- 执行当前运行函数到结束(跳出) r
- 继续,直到下个断点 c
- 跳到指定行j lineNumber 

查看

- 查看变量 p varsName
- 查看当前函数参数 a
- 列出当前源码附近 l
- 列出lineNumber附近源码 l lineNumber 
  • 查看所有代码 l lineNumber

调用栈

- 查看当前栈 w
- 进入下一层堆栈 d
- 跳到上一层堆栈 u

其他

- 退出 q
- 重新运行 run
- 执行命令 !command  可以动态更改程序中的变量
- 执行上条 enter

实际使用

ZeroDivisionError: division by zero

# 执行命令
python -m ipdb login.py

  • 设置断点在第四行

    b 4
  • 运行

    r

    单步调试

    n # 执行打印命令
    n # 执行b -= 10
    p b # 查看b变量内容
    s # 进入func2继续调试
  • 发现错误更改后

    disable 1 # 失效断点
    run # 重新载入程序
    r # 执行
    cl # 程序正常,去除断点

posted on 2017-12-21 14:55 猪的饲养员 阅读() 评论() 编辑 收藏

版权声明:本文为pigbreeder原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/pigbreeder/p/8080593.html