全网最实用的Debug调试技巧汇总

一、思考
1、什么是debug
● 找茬
◆ 找软件的茬
◆ 发现程序的缺陷
2、为什么需要debug?

全网最实用的Debug调试技巧汇总

文章插图
 
● 谁都不敢保证,写的代码没有任何问题
● 高效查找软件异常
● 一位优秀的开发工程师
◆ 20%的时间写代码
◆ 80%的时间用来排错
“不会debug” == “不会代码” == “低工资”
3、debug需要具备哪些功能?
全网最实用的Debug调试技巧汇总

文章插图
 
● 控制程序的执行
◆ 想停则停,想执行则执行
◆ 随心所欲
● 设置断点
◆ 在指定位置停止
● 查看当前命名空间(程序栈)中变量
二、Python中的Debug大法
案例代码如下所示:
创建deubg_skills_demo.py文件
全网最实用的Debug调试技巧汇总

文章插图
 

全网最实用的Debug调试技巧汇总

文章插图
 

全网最实用的Debug调试技巧汇总

文章插图
 
创建gifts.py文件
全网最实用的Debug调试技巧汇总

文章插图
 
1、Pdb操作
全网最实用的Debug调试技巧汇总

文章插图
 
● 系统自带的debug工具(无需安装)
● 将以下代码放在需要调试的地方(类似于设置断点)
全网最实用的Debug调试技巧汇总

文章插图
 
● 当程序执行到上述代码所在位置时,会自动开启一个console终端
◆ "->"是接下来要执行的代码(当前还未执行)
全网最实用的Debug调试技巧汇总

文章插图
 
● 可以在终端运行的命令
◆ list或者l
◆ 显示当前运行的代码
◆ 默认列出11行代码
全网最实用的Debug调试技巧汇总

文章插图
 
● p变量名或者p需要运行的表达式
◆ 打印变量的值
全网最实用的Debug调试技巧汇总

文章插图
 
● step或者s
◆ 如果在函数调用处执行,则会进入函数体内部
全网最实用的Debug调试技巧汇总

文章插图
 

全网最实用的Debug调试技巧汇总

文章插图
 
● next或者n
◆如果在函数调用处执行,则不会进入函数体内部
全网最实用的Debug调试技巧汇总

文章插图
 
● enter
◆ 重复执行上一次的命令
● b(reak) [ ([filename:]lineno | function) [, condition] ]
◆ 设置断点
◆ filename可选,如果不传,默认在当前文件设置断点
全网最实用的Debug调试技巧汇总

文章插图
 

全网最实用的Debug调试技巧汇总

文章插图
 
● c或者continue
◆ 继续往下运行,在下一个断点处停下来
全网最实用的Debug调试技巧汇总

文章插图
 
● disable断点编号
◆ 禁用断点
全网最实用的Debug调试技巧汇总

文章插图
 
● enable断点编号
◆ 启用断点
● cl或者clear 断点编号
◆ 清除断点
全网最实用的Debug调试技巧汇总

文章插图
 
● display或者undisplay 变量
◆ 监听或者不监听某个变量
◆ 如果变量值改变,会自动显示
全网最实用的Debug调试技巧汇总

文章插图
 
● h或者help
◆ 帮助信息
全网最实用的Debug调试技巧汇总

文章插图
 
● h具体命令
◆ 具体命令的帮助文档
● h pdb
◆ pdb的完整文档
三、Pycharm debug操作
全网最实用的Debug调试技巧汇总

文章插图
 
1、打开Python Prompt
全网最实用的Debug调试技巧汇总

文章插图
 
会出现一个ipython的控制台
● 可在控制台查看当前命名空间中的变量
● 也可执行Python表达式


推荐阅读