一、 代码调试

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



设置后执行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. map,filter

    def is_odd(n): return n % 2 == 1 newlist = filter(is_odd, [i for i in range(0,5)]) print(list(newlis ...

  2. 80%人会答错的JS基础面试题

    这套题第一道题难度最大,我第一遍的回答居然也错的,我悲观估计80%的JavaScript从业人员都答不完全准确 []==![] 得到什么? false, 你还需要看看基础 true, 恭喜你答对了,你 ...

  3. 解决 Vmware 服务拒绝访问的问题

    背景 在服务页面想将 VMware NAT Service 设置为自动开启的,但是保存的时候显示拒绝访问,如下图 解决方案 想到在本机的火绒启动项管理里面将 VMware NAT Service 设置 ...

  4. netfilter 的扩展功能

    目前内核已经有filter 功能,但是往往实际运用中需要用到一些定制的filter  功能, 所以这个时候仅仅依靠现有的不能完成,于是就出现了conntrack的扩展功能, 最直接的就是tftp he ...

  5. MySQL死锁问题(转)

    线上某服务时不时报出如下异常(大约一天二十多次):"Deadlock found when trying to get lock;". Oh, My God! 是死锁问题.尽管报错 ...

  6. css 实现换肤几种方式

    说起换肤功能,前端肯定不陌生,其实就是颜色值的更换,实现方式有很多,也各有优缺点 一.可供选择的换肤 对于只提供几种主题方案,让用户来选择的,一般就简单粗暴的写多套主题 一个全局class控制样式切换 ...

  7. Markdown 常用语言关键字

    Markdown 语法高亮支持的语言还是比较多的,记下来备用. 语言名 关键字 Bash bash CoffeeScript coffeescript C++ cpp C# cs CSS css Di ...

  8. yum安装指定版本ceph包

    安装ceph包的方式有很多,这里讲的是从官网直接通过yum源的安装方式进行安装 yum源对应的地址为 http://download.ceph.com/rpm-hammer/el6/x86_64/ 怎 ...

  9. Android Support v4\v7\v13和AndroidX理解【转载】

    为什么要用support库呢? 因为在低版本Android平台上开发一个APP时,想使用高版本才有的功能,此时就需要使用Support来支持兼容. 1. android-support-v4 comp ...

  10. Python_爬虫_BeautifulSoup网页解析库

    BeautifulSoup网页解析库 from bs4 import BeautifulSoup 0.BeautifulSoup网页解析库包含 的 几个解析器 Python标准库[主要,系统自带;] ...