如果很简单的程序,建议还是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 # 程序正常,去除断点

python调试的更多相关文章

  1. 如何用pdb进行python调试

    本文章讲述了如何用pdb进行python调试讲解. 当手边 没有IDE,面对着python调试犯愁时,你就可以参考下本文;(pdb 命令调试) 参 考:http://docs.python.org/l ...

  2. python 调试

    python 调试基本和gdb调试一样,举例: debug .py #!/usr/bin/python   print "hello" i=0 for j in range(10) ...

  3. 使用Sublime Text搭建python调试环境

    原文地址:http://blog.csdn.net/wenxuansoft/article/details/38559731 pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的 ...

  4. Python - 调试Python代码的方法

    调试(debug) 将可疑环节的变量逐步打印出来,从而检查哪里是否有错. 让程序一部分一部分地运行起来.从核心功能开始,写一点,运行一点,再修改一点. 利用工具,例如一些IDE中的调试功能,提高调试效 ...

  5. “笨方法”学习Python笔记(2)-VS Code作为文本编辑器以及配置Python调试环境

    Visual Studio Code 免费跨平台文本编辑器,插件资源丰富,我把其作为Debug的首选. 下载地址:https://code.visualstudio.com/Download 安装之后 ...

  6. win10下正确使用Sublime Text搭建python调试环境

      pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 ...

  7. VSCode配置python调试环境

    VSCode配置python调试环境 很久之前的一个东东,翻出来看看 VSCode配置python调试环境 * 1.下载python解释器 * 2.在VSCode市场中安装Python插件 * 4.在 ...

  8. 使用Sublime Text搭建python调试环境[转]

    pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 2. ...

  9. 学习笔记之Python调试 - pdb

    python调试神器——pdb - 软谋python https://mp.weixin.qq.com/s/w3Xw8I_zh7MFq2dx5kdQXw 优秀开发者必备技能包:Python调试器 - ...

  10. linux python调试技巧

    Linux下Python基础调试 http://blog.163.com/liuyuhuan0915@126/blog/static/78265448201141662828820/ 当手边没有IDE ...

随机推荐

  1. c# 事件路由器

    事件转发 using System; using System.Collections.Generic; using System.Linq; using System.Text; using Sys ...

  2. R 调用 python

    上一篇说了python使用 rpy2 调用 R,这里介绍R如何调用python.R的强项在于统计方面,尤其是专业的统计分析,统计检验以及作图功能十分强大,但是在通用性方面,就远不如Python了,比如 ...

  3. 【php】RBAC 管理权限

    用户   角色   权限 用户:张三 角色:管理员 权限:page/index1.php   能访问的页面

  4. 集中式(SVN)和分布式(Git)版本控制系统的简单比较

       集中式(SVN)  分布式(Git)  是否有中央服务器  有.开发人员需要从中央服务器获得最新版本的项目然后在本地开发,开发完推送给中央服务器.因此脱离服务器开发者是几乎无法工作的  没有中央 ...

  5. 换行符\n和回车符\r

    问题始于社区的一个帖子,楼主的问题如下: “在c语言中,对一个不知道大小的文件进行读操作,我用fread()将文件的内容先放到一个缓存区,然后将缓存区中的内容打印出来, 缓存区中的内容和文件中的内容不 ...

  6. 基于线程池的线程管理(BlockingQueue生产者消费者方式)实例

    1.线程池管理类: public class ThreadPoolManager { private static ThreadPoolManager instance = new ThreadPoo ...

  7. 关于C#连接Oracle数据库 尝试加载Oracle客户端时引发BadImageFormatException 如果在安装32位Oracle客户端组件的情况下以64位模式运行,将出现此问题

    这个问题已经困扰了我快一个月了,各种百度,各种博客,可是,一个个都试过了,什么下载32位客户端,配置环境变量什么的,纯属扯犊子,开发环境win10 64位    oracle 11g r2 64位,这 ...

  8. iOS-Runtime的那些事...编辑中....

    Runtime-iOS的黑魔法,还是很好玩的,消息机制.方法替换简单记录了一点,持续更新.... 1.方法替换 在类load方法中,替换系统方法 + (void)load{ Method oldCol ...

  9. Jedis/JedisPool和Redis数据类型与特性

    1.介绍Jedis Jedis 是 Redis 的 java 版本客户端,使用Jedis可以连接 Redis的数据库,Jedis连接方式有三种Jedis/JedisPool 连接.ShardedJed ...

  10. 终于放弃Windows下丑陋的cmd

    微软万年不变的cmd命令行工具,简直其丑无比,交互性极差.但是作为开发者有时离不开.最近用了几款开源替代方案.发现几款不错的cmd替代者.例如Cmder.babun.ConsoleZ.win-bash ...