从Java一路走来,习惯了使用IDEA来调试代码,平时写python也都是使用Jupyter notebook,但是现在逐渐转行到Python开发,突然在linux下进行python代码调试,就会显得有点不习惯了。

下面先从python调试工具PDB开始。

介绍

在开发简单程序的时候,可以通过加入print或是log的方式进行程序的调试,但是对于复杂的程序这种方式往往比较困难,这时就需要引入一种可以进行单步调试以及可以方便查看变量的方法来进行程序问题的排查,Python 的pdb就是用来解决这个问题的。

python -m pdb run.py

一般在程序中加入下面代码,即可进入pdb调试:

import pdb
pdb.set_trace()

常用命令:

  • h(elp),会打印当前版本Pdb可用的命令,如果要查询某个命令,可以输入 h [command],例如:“h l” — 查看list命令
  • l(ist),可以列出当前将要运行的代码块
  • b(reak), 设置断点,例如 “b 77″,就是在当前脚本的77行打上断点,还能输入函数名作为参数,断点就打到具体的函数入口,如果只敲b,会显示现有的全部断点
  • condition bpnumber [condition],设置条件断点,下面语句就是对第4个断点加上条件“a==3”
  • cl(ear),如果后面带有参数,就是清除指定的断点(我在Python2.4上从来没成功过!!!);如果不带参数就是清除所有的断点
  • disable/enable,禁用/激活断点
  • n(ext),让程序运行下一行,如果当前语句有一个函数调用,用n是不会进入被调用的函数体中的
  • s(tep),跟n相似,但是如果当前有一个函数调用,那么s会进入被调用的函数体中
  • c(ont(inue)),让程序正常运行,直到遇到断点
  • j(ump),让程序跳转到指定的行数
  • a(rgs),打印当前函数的参数
  • p,最有用的命令之一,打印某个变量
  • !,感叹号后面跟着语句,可以直接改变某个变量
  • q(uit),退出调试

参考:https://blog.csdn.net/redhat7890/article/details/5703617?utm_source=blogxgwz3

使用PDB调试Python程序的完整实践相关推荐

  1. 使用pdb调试Python程序

    From: http://blog.csdn.net/magicbreaker/article/details/3754733 本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程 ...

  2. 命令行下 pdb 调试 Python 程序

    官方参考网站 The Python Debugger : https://docs.python.org/3/library/pdb.html gdb 调试命令的使用及总结:https://blog. ...

  3. PDB调试Python程序

    pdb是python内置的调试工具, 它可以在终端中调试Python程序, 这允许pdb在很多无法安装IDE的服务器上使用. 虽然远程调试使用广泛, 但在必要的时候(比如难以在本地搭建运行环境)pdb ...

  4. Linux下使用终端调试Python程序:pudb

    根据官网的介绍:PythonDebuggingTools - Python Wiki Python自带调试程序pdb,pdb有点像gdb,强大,但不够好用. 根据别人的推荐:Suggestions f ...

  5. python程序代码大全-调试Python程序代码的几种方法总结

    程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误 ...

  6. 使用pdb调试python

    python pdb调试 python -m pdb myscript.py #注意这会重启myscript.py,这样启动的话,代码每一行都是一个节点 也可以在程序中这么设置断点: import p ...

  7. python程序-调试Python程序代码的几种方法总结

    程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误 ...

  8. spyderpython使用教程_使用spyder3调试python程序的简明教程

    说是简明教程,其实是我自己尝试用spyder调试python程序的过程的一个记录,因为spyder的调试功能是基于pdb,而我又没有pdb的基础,所以刚开始上手时感觉很不习惯,而且那时我又很懒,没去找 ...

  9. python如何调试_调试python 程序的几种方法总结

    程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误 ...

最新文章

  1. SQL查询语句 select 详解
  2. java如何让控制台不输出报错_Java 控制台输入输出操作记录
  3. 黄猫被汽车撞死 花猫雨夜苦守
  4. webgl 基础渲染demo_WebGL + ThreeJS 实现实时水下焦散 Part 1
  5. Scrapy突破反爬虫的限制
  6. 解决: service endpoint with name xxx already exists
  7. sscanf 连续相同编辑符_【第1995期】钉钉文档编辑器的前世今生
  8. L1-065 嫑废话上代码 (5 分)-PAT 团体程序设计天梯赛 GPLT
  9. 通过pip下载python包缓慢的解决方法
  10. 寻找关键之年的榜样和标准
  11. APP扫码登录WEB系统
  12. 统一管理所有随机启动的应用程序
  13. 开源生产排程aps软件dream设计思路分析
  14. 基于特征点检测的人脸融合技术
  15. 在Mac电脑上:更改移动硬盘的格式
  16. 六、阻塞队列与源码分析(上)
  17. windows10修复引导
  18. 线上的观众朋友们好,这里是最劲最有料的华为云现场直播!
  19. UVa1471 Defense Lines(LIS变形)
  20. 《西部世界》S2E9:蝶化庄周,浮生若梦

热门文章

  1. MySQL中count(1),count(*),count(某字段)等用法联系和区别
  2. 报错:selenium.common.exceptions.SessionNotCreatedException: Message: session not created: This versio
  3. Dev-Cpp 常用的快捷键(持续更新)
  4. 神奇的用法_续行符——反斜杠
  5. python数组展示_python如何显示数组
  6. 安徽计算机应用基础高考试题,安徽省对口高考试题(计算机应用基础部分)
  7. java求数组的最小值_JAVA编程求数组最大值和最小值
  8. python笔记之序列(list的基本使用和常用操作)
  9. matplotlib 中文_详解Matplotlib中文字符显示问题
  10. 使用了未赋值的局部变量_macOS上的汇编入门(七)——字面量与局部变量