IDEA中Debug调试
Debug用来追踪代码的运行流程,通常在程序运行过程中出现异常,启用Debug模式可以分析定位异常发生的位置,以及在运行过程中参数的变化。通常我们也可以启用Debug模式来跟踪代码的运行流程去学习三方框架的源码。
按钮从左到右依次解释:
Show Execution Point :如果你的光标在其它行或其它页面,点击这个按钮可跳转到当前代码执行的行。
Step Over :步过,一行一行地往下走,如果这一行上有方法不会进入方法。
Step Into :步入,如果当前行有方法,可以进入方法内部,一般用于进入自定义方法内,不会进入官方类库的方法。
Force Step Into :强制步入,能进入任何方法,查看底层源码的时候可以用这个进入官方类库的方法。
Step Out :步出,从步入的方法内退出到方法调用处,此时方法已执行完毕,只是还没有完成赋值。
Drop Frame :回退断点
Run to Cursor :运行到光标处,你可以将光标定位到你需要查看的那一行,然后使用这个功能,代码会运行至光标行,而不需要打断点。
PyCharm中Debug调试
断点调试是在开发过程中常用的功能,能清楚看到代码运行的过程,有利于代码问题跟踪,pycharm打断点很简单,在代码行号后空白槽点击一下,出现红球,就可以了。当Pycharm运行到该行代码时会将程序暂时挂起,通过debug相关功能就可以进行调试了。
debug相关功能:
Step Over:在单步执行时,在函数内遇到子函数时不会进入子函数内单步执行,而是将子函数整个执行完再停止,也就是把子函数整个作为一步。有一点,经过我们简单的调试,在不存在子函数的情况下是和Step Into效果一样的(简而言之,越过子函数,但子函数会执行)。
Step Into:单步执行,遇到子函数就进入并且继续单步执行(简而言之,进入子函数)。
Step Into My Code:进入自己编写的函数,不进入系统函数,很少用到。
Force Step Into:强制进入,在调试的时候能进入任何方法。
Step Out:当单步执行到子函数内时,用Step Out就可以执行完子函数余下部分,并返回到上一层函数。
Run to Cursor:一直执行,到光标处停止,用在循环内部时,点击一次就执行一个循环。
演示:
总结:
1.先运行代码,看报错信息
2.在报错信息之前设置断点
3.进行调试,查看调试信息
4.修复bug