(1-7)顶部菜单栏的介绍
-
:能够定位到当前执行到了哪一行,debug过程中临时打开了其他的文件下,想继续debug可以用这个跳转到位置
-
:将每一行当做一个步骤,不会进入到函数体内部,如果是函数体内部报错,会跳转到源码里面
-
:会进入源码的子函数
-
:不会进入源码的子函数,只会进入自己写的子函数中;在源码内部,点击也会离开源码,到自己方法中
-
:执行完当前断点所处函数的剩下的内容,返回进入该函数的入口处
-
:这里分为两种情况,
(1)如果指定了光标在某一行,会执行到光标处停下来,当我们想在某个地方停下来,但是这里没有打断点的时候,我们每次都一步一步逐步进行太慢,于是可以用这个功能。注意:不能将光标放到已运行的代码中,debug过程不可逆
(2)如果我们设置了多个断点,那么,点击这个会跳转到下一个断点处
- :计算表达式窗口
1.小技巧:我们可以在变量窗口选中一个变量再点击表达式窗口,表达式窗口会默认填充选中变量的值
2.注意事项:
8. 使用控制台(Console)打印或操作变量
9. watches窗口的用法
常用技巧:
如果执行某个函数,想知道return具体返回的是什么,可以直接在watch窗口进行调用得出结果
其中选中表达式,右键选择也可以调出来
10. 条件断点
这个很有用,可以定位在测试报告报错的用例
注意:此处设置的条件语句为:a,本来的意思是只要为真就停止,此段代码在此处未曾运行过,因此我们使用过程中,条件最好设置在断点调试的语句之前
11. debug运行过程中加断点
12. debug运行过程中修改内存中的变量值的两种方式
方式1:设置没有成功
方式2:debug后在console中更改变量值,可以成功
注意点:其中方式2和直接选择在控制台执行该文件不同,在控制台执行该文件会执行整个文件,如果想和这个一样在运行过程中修改,恐怕得选择执行所选择的代码,然后开始执行,这两个还是有不同的,不过控制台执行文件的话,会有watch变量窗口,能够实时查看数据而已
上面我们打了个断点,是为了方便说明这个效果。并不是说一定要打断点。如果不打断点,在脚本执行完成后,也仍然可以在这个界面查看并操作所有变量。
13. 调试的其他情况:
(1)debug过程中加代码
(2)为什么获取某个变量值需要将断点打入到函数内部
因为函数执行完成后,内部的变量是会进行销毁的,如下图,执行完成后,也不会有变量的内存。
def aa():
a = 3
b = 4
pass
aa()
(3)查看变量值的方式
如果想在debug调试中看到变量的值,必须用变量存储起来
另外除了上面的查看变量的方法,我们在进入debug后,将光标放置在变量上面,也会有显示
(4)选择变量,跳转到源代码
这个使用场景为,可在debug时跳转该变量所在代码行或该变量所属类型的源代码,书签功能和这个不冲突
14. 断点临时取消,保证以下流程正常运行
方法1:在测试批量添加商品时,断点保证一个商品正常添加后,临时取消断点,点击
15.idea单步调试快速跳过后面的断点-Mute Breakpoints
这个静音断点和上面14介绍的功能大致一样,都是能够让后面的代码一次性执行完又不会取消掉原有的断点;
这个如果打开未开启,后面debug调试不会进入断点处,和14一样
16. 查看某段代码在哪些地方被使用
选择某个对象,右键选择find usages,可进行定位,下方是定位的辅助功能
17. 显示更详细的变量值
18. 使用书签功能查看源代码
书签 功能 快捷键
Ctrl + F11 设置书签
Ctrl + 书签号 跳转到 该书签
SHIFT F11: 显示所有书签。
在笔记本上需要加上fn(垃圾笔记本设置)
修改快捷键
添加/删除书签:改为alt+d
显示所有书签:改为alt+s
实战演练
- 添加标签
选择已被使用的标签,之前的会被替换掉,以最新的为准
- 标签跳转
方法一:直接用ctrl+添加时设置的数字
方法二:显示所有书签,然后鼠标左侧双击,也可跳转
19. 目前debug调试的方法总结
- 首先断点进入代码内部
- 点击左侧定位到代码所在文件
- 根据是否必要,展开左侧结构Structure,然后搜索这个方法或类名,或者直接ctrl+f12
- 断点时跳转频繁,则使用书签功能
- 部分代码看完后,返回断点处,点击回来继续往下看
- 过程中也可适当使用这个方法
7.代码过长,记得用代码缩放,先理清整理逻辑再看局部
21.不打断点,直接debug会有一个雷电标志,直接定位到具体代码
而且这样还能在控制台继续debug
22. 断点居然还能拖动
使用断点后发现打错了位置,可以上下拖动
24. (重要)debug快速定位问题技巧
25. 新版本pycharm可直接点击根据注释查看
26. 通过查看调用的线程,定位控制台垃圾输出信息所在的位置