一、 代码调试

点击工具栏的调试按钮(如下图蓝色圈标记按钮)可以进行程序调试,可以在调试前先设置断点,断点设置就是在打开文件的行与前面的行号之间用鼠标单击进行设置和取消(如下图蓝色下划线上面的实体圆点)



设置后执行debug时到断点就会停下,如下图:



其中黄色荧光笔标记的为debug调试语句执行按钮,包括step over、step into等按钮,在run菜单中也有对应子菜单,相关功能也有对应快捷键,如F8、F7等。在右下角标记蓝色的框内能观察到对应变量的值。除了常规的step into和step over功能之外,PyCharm还提供了如下调试功能:

1、 step into(单步跟踪进入,遇函数进入函数代码执行):快捷键为F7,执行下一行,如果遇到子函数会进入子函数执行,包括调用标准库模块的子函数都会进入;

2、 step over(单步跟踪,遇函数当成一行代码执行,不会进入函数内执行):快捷键为F8,执行下一行,如果遇到子函数不会进入子函数执行,将子函数作为一行执行,但如果子函数中有断点会执行到断点处;

3、 Step into my code(执行到应用代码),从当前系统模块函数代码中直接往下执行直到执行到应用本身的代码,快捷键为Alt+Shift+F7,当执行step into进入一个系统模块的代码中去以后,使用该功能可以回到自己的代码并继续向下行执行,这个功能老猿觉得应该某些时候非常有用;

4、 Force Step into(强制单步执行但忽略调试过滤条件):快捷键也为Alt+Shift+F7,但菜单栏是灰色的,查阅相关资料说当调用了一个类库方法时候,强制进入会进入到该类库的方法里面,哪怕是class代码,这一般没必要,所以必须强制才能进去。另外从菜单的hint信息中,是说对于逐步调试过滤的库、构造函数等也强制进入,如果是这样应该有个地方可以设置调试过滤的地方,老猿暂时没有这个功能。因此这个功能老猿没弄明白是什么意思,因为老猿验证使用step into调用系统标准模块也会进入标准模块的构造函数执行,并且在老猿测试过程中,该按钮始终为不可用状态,不能点击;

5、 step out(执行跳出当前函数):快捷键为Shift+F8,当单步执行到子函数内时,用step out就可以执行完子函数余下部分,并返回到上一层函数;

6、 smart step into(智能单步跟踪):快捷键为:Shift+F7,这个在按钮中没有,在菜单中有,这个功能也是一个非常有用的功能,当一行代码中有多个函数,想进入其中一个函数其他函数不进入,使用该功能可以让调试人员选择进入的函数。如:



就可以选择需要调试进入的函数而其他两个函数不进入。

注意:如果想选择上面3个函数中的2个执行必须在执行第一个函数返回时再选择这种模式执行。另外该方式执行到调试的函数内时,如果还需要继续选择调试下一个函数,需要在当前执行函数的return语句去选择该方式执行,在其他地方该方式执行等同于断点恢复执行执行功能。

7、 Force Step over(强制单步跟踪):快捷键为Alt+Shift+F8,与step over类似,只是函数中的断点全部会disable不会发生作用,所以为Force;

8、 run to cursor(执行到光标):快捷键为Alt+F9,执行到当前光标所在代码,中间如果有断点会在断点处停止;

9、 Force run to cursor(强制执行到光标):快捷键为Ctrl+Alt+F9,执行到当前光标所在代码,中间如果有断点会全部忽略不停止;

10、 Jump to Cursor(跳转到光标):忽略其他代码,直接从当前执行处跳转到当前光标代码行;

11、 resume programe(断点恢复执行):快捷键F9,直接从当前处往下执行,直到遇到下一个断点。

本节介绍了PyCharm的debug方法,可见PyCharm的调测功能还是比较强大的。

老猿Python,跟老猿学Python!

博客地址:https://blog.csdn.net/LaoYuanPython


老猿Python博客文章目录:https://blog.csdn.net/LaoYuanPython/article/details/98245036

请大家多多支持,点赞、评论和加关注!谢谢!

第15.3节 PyCharm程序调试功能介绍的更多相关文章

  1. 第15.4节 PyCharm程序代码检测功能介绍

    老猿使用PyCharm有将近一个月了,发现PyCharm并不能很好的完成语法检查,有时运行时突然终止,仔细核查却发现是基本的语法错误,不过有次无意中移动鼠标到代码最右边的边框时发现其实PyCharm有 ...

  2. Python开发环境Wing IDE使用教程:部分调试功能介绍

    下面是用户应该了解的Wing IDE的其它一些调试功能: Main Debug File—用户可以指定项目中的一个文件作为调试的主入口点.当完成这个设置之后,调试总是从这个文件开始,除非用户使用Deb ...

  3. 第15.1节 PyCharm安装及使用

    一. 引言 在本章以前,所有老猿实现的代码都是基于Python自带的解释器IDLE来开发和执行的,很方便.消耗少,但进入PyQt图形界面开发以后,IDLE不能实现和PyQt的集成,且不能支持断点调试, ...

  4. 第15.2节 PyCharm支持Python解释器的配置调整

    上节介绍了PyCharm的安装与简单使用,本节介绍PyCharm相关的配置调整,以支持在PyCharm环境下集成Python解释器进行程序的编译. 一. 工程配置调整 在执行文件前,可能需要对PyCh ...

  5. 第15.5节 PyQt的历史沿革介绍

    当朋友向我推荐PyQt时,老猿才知道有这样一个在Python下的开源的图形界面开发工具,当准备学习PyQt安装时,发现要安装sip.PyQt.PyQt-tools,然后还要进行相关配置.老猿很好奇为什 ...

  6. Google Chrome浏览器调试功能介绍

    作为Web开发人员,我为什么喜欢Google Chrome浏览器 [原文地址:http://www.cnblogs.com/QLeelulu/archive/2011/08/28/2156402.ht ...

  7. 【matlab】MATLAB程序调试方法和过程

    3.8  MATLAB程序的调试和优化 在MATLAB的程序调试过程中,不仅要求程序能够满足设计者的设计需求,而且还要求程序调试能够优化程序的性能,这样使得程序调试有时比程序设计更为复杂.MATLAB ...

  8. 第15.6节 PyQt5安装与配置

    一. 引言 关于PyQt5的安装网上有很多的文章,老猿也是学习了好多,最后结合其他模块安装的知识发现其实安装很简单,就是直接使用pip或pip3安装就可以了,这样既无需预先下载好软件,也无需担心版本的 ...

  9. 第15.44节、PyQt输入部件:QAbstractSlider派生类QScrollBar滚动条、QSlider滑动条、QDial刻度盘功能详解

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一.引言 Designer中的输入部件Horizo ...

随机推荐

  1. Ubuntu 18.04 Tomcat 端口号查询

    参考http://blog.csdn.net/liufuwu1/article/details/71123597 最近几天发现许多这篇笔记被许多朋友访问,推测有很多朋友也与我有相同的疑惑,而原始版本过 ...

  2. PS中抠图的四种方法介绍

    工具/原料 photoshop 软件(我用的是photoshop cc) 需要抠图的图片 开始的步骤 打开ps 打开图片,ctrl+O 魔棒抠图法 对于前景和后景有明显差别的图片用魔棒抠图法抠图比较容 ...

  3. 关于UI测试自动化的考虑

    针对IE的测试使用.net体系是比较方便的,利用process启动IE,再把IE进程转换成IExplore对象,就可以随意的操纵html dom了 针对Firefox的测试使用selenium也是比较 ...

  4. Linux vi种 wq 、wq!、x、q、q!区别

    上面的命令只是在vi编辑命令中使用 wq:表示保存退出 wq!:表示强制保存退出 x:表示保存退出 wq和wq!的区别如下: 有些文件设置了只读,一般不是修改文件的,但是如果你是文件的owner或者r ...

  5. SQL Server 常用近百条SQL语句(收藏版)

    1. sqlserver查看实例级别的信息,使用SERVERPROPERTY函数 select SERVERPROPERTY ('propertyname') 2. 查看实例级别的某个参数XX的配置 ...

  6. IAR_STM32_BootLoader

    1.STM32 Bootloader与APP IROM中可以分成两个区域,起始代码运行地址为0x08000000,这是基本固定的,可以将IROM的0x08000000 ~ 0x08002000这8KB ...

  7. Node.js 爬虫爬取电影信息

    Node.js 爬虫爬取电影信息 我的CSDN地址:https://blog.csdn.net/weixin_45580251/article/details/107669713 爬取的是1905电影 ...

  8. [LeetCode题解]876. 链表的中间结点 | 快慢指针

    解题思路 使用快慢指针.这里要注意的是,while 的条件会影响当中间节点有两个时,slow 指向的是第一个,还是第二个节点. // 返回的是第一个 while(fast.next != null & ...

  9. Hash算法——加密解密说明

    MD5 pmd5-md5加密解密 加密类型识别工具 hash-identifier

  10. php读取Excel文件数据

    首先先下载 PHPExcel 脚本之家下载地址:https://www.jb51.net/codes/194070.html 然后把文件丢到php脚本同级目录里面 在php文件里面写下以下代码即可 & ...