第4节,掌握debug技能

当程序的运行结果与自己期望的结果不符时,你应当做的是debug,单步跟踪调试,深入程序内部,了解程序的执行过程。

单步跟踪调试的过程中,你可以清楚的看到每一个变量的值,可以看到程序如何一步步的执行,必然存在某一个时刻,程序的中间结果与预期不符,而这个中间状态更能够让你找出问题所在。

想要单步跟踪调试,你需要一个顺手的IDE,我个人比较喜欢pycharm,因此本文也使用pycharm做例子讲解如何进行debug,单步跟踪调试程序。

1. 断点

只有在debug状态下,断点才会起作用,所谓断点,就是一处你希望程序暂停的地方。我们希望程序不要那么快的执行完,设置一个断点,程序运行到这里,就会停下来,之后,你就可以单步调试,所谓单步调试,就是你让程序执行一行,它就执行一行。

断点的设置非常容易,以pycharm为例,只需要左键点击代码左侧标识代码行数的区域即可

左键点击红框内的区域,就会出现一个小红点,再次点击,小红点会消失,这就是一处断点

2. debug模式运行程序

想要单步调试程序,需要进入debug模式运行程序

第一种方法,通过Run 找出下拉菜单,然后点击debug

第二种方法,右键点击代码区域,点击debug

3. debug工具使用

上图就是进入到debug模式后的界面,有三个重要区域需要你关注

3.1 调试区域

常用的功能键有5个

第1个功能键是 step over,你点击一下,程序就会执行一行

第2个功能键是 step into,如果这一行有函数,点击它就会进入到函数中

第3个功能键是 step into my code,如果这一行有函数,既有第三方库的函数,也有自己编写的函数,那么会优先进入到自己的函数里

第4个功能键是step out,就是从函数里退出来

第5个功能键是run to cursor,就是直接运行到下一处断点

3.2 调用栈区域

先看左侧的两个红框内的按钮

绿色箭头的按钮是resume progrom,是恢复程序执行,如果后续代码没有断点了,程序就会正常执行直到结束。

红方块的按钮是 stop,停止程序。

调用栈区域展示的,是调用栈的信息,通过它就能知道从程序开始运行到当前代码,经过了哪些调用关系

3.3 变量查看区域

变量查看区域,可以查看当前程序里的每一个变量的值,非常的方便,不仅如此,还可以自己添加表达式,查看自己关注的值,比如绿色框内的1%2 就是我通过左侧红色框内的+按钮添加上去的,添加的时候,写完表达式后,要点击回车才能完成添加。

除了这里可以查看变量的值,在程序页面里,debug模式下,鼠标滑动到变量上,也可以查看变量的值

除了pycharm提供的调试工具,还可以使用python提供的pdb,不过是命令行的,不如图形界面友好,还有一个ipdb,比pdb高级一些,有高亮显示,学会了debug,程序的运行结果和自己期望的不一致时,就可以单步跟踪调试啦,再也不用四处求人解答了

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案