使用Debug调试代码
1.打断点
一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。
注意断点会将对应的代码行标记为红色,取消断点的操作也很简单,在同样位置再次单击即可。
如图所示,打了两个断点

当你将鼠标指针悬停在断点上方时,Pycharm会显示断点的关键信息,行号以及脚本属性,如果你希望更改该断点的属性,右击断点:

可以尝试对断点属性进行个性化更改,然后观察图标的变化。
2.代码调试
我们有几种方法来debug程序
第一种:通过鼠标右击代码处,可以来debug程序

第二种:可以通过点击这个小虫子的图标来进行debug

接下来会Pycharm会执行以下操作:
(1)PyCharm开始运行,并在断点处暂停
(2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。
(3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。
在这里介绍一下debug窗口几个图标分别代表的意思

这里一排七个坐标的意思分别是
1.show execution point (F10) 显示当前所有断点
2.step over(F8) 单步调试。
若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行
3.step into(F7) 单步调试。
若函数A内存在子函数a时,会进入子函数a内执行单步调试。
4.step into my code(Alt + Shift +F7) 执行下一行但忽略libraries(导入库的语句)
5.force step into(Alt + Shift +F7) 执行下一行忽略lib和构造对象等
6.step out(Shift+F8)当目前执行在子函数a中时,选择该调试操作可以直接跳出子函数a,而不用继续执行子函数a中的剩余代码。并返回上一层函数。
7.run to cursor(Alt +F9) 直接跳到下一个断点
然后接着来看变量查看器
在调试过程中观察变量的状态。我们需要对其设置一个查看器。在Watches窗口中,单击加号,输入期望查看的变量名称,例如这里输入delay,然后回车。我试了三个变量,这里我们看到这三个变量目前都是没被定义的,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。
*注意:*这个眼镜模样的图案是watch窗口(我当时可是找了半天…,网上的都是一些老版本的介绍的watch窗口,=.=)

可以通过点击这个图标

将这两个窗口连在一起查看

OK,接下来我们来看控制台窗口
Console窗口的工作模式:
  为什么需要用到Console窗口呢?当我们需要查看程序给出的错误信息,或者进行一些额外的临时运算时,就需要在这个窗口里面进行。
单击左侧工具栏中的命令符按钮,显示Python的命令提示符(在这里,问题又来了,新版的pycharm的那个图标又换了,而且还隐藏的很深,这是怕别人找到了吗。。。)
经过探索,发现在这=.=

点击这个,即可显示python的命令提示符

在这里做个小测试,这里可以直接编译python代码,执行一些python命令。

介绍完这些,开始进入正式调试代码,我用的小例子的代码如下:

import threading
import timedef get_thread_name():t = threading.current_thread()return t.namedef print_time(delay):"""Define a function for the thread."""thread_name=get_thread_name()count = 0while count < 8:time.sleep(delay)count += 1print("%s:%s" % (thread_name, time.ctime(time.time())))t1 = threading.Thread(target=print_time, args=(1,))
t2 = threading.Thread(target=print_time, args=(2,))
t1.start()
t2.start()
t1.join()
t2.join()

调试开始,并且在第一个断点处停止,断点所在的行变为蓝色,说明Pycharm已经击中了这个断点,但尚未执行这行代码。

通过断点调试,在第一个断点处,进行下一步操作,即可得到变量的值的变化情况


最后在介绍一下,可能有时候debug并不能正常进行,控制台会输出如下信息:

程序本身应该没有错误,就是不能正常debug。
下面记录几种解决方式:
一、关闭Pycharm,删除工程目录下的.idea文件夹并重启。
二、删除所有的断点。可以点击下图所示的两个叠在一起的红色原点进行操作。
三、点击Pycharm的File>>Invalidate Caches / Restart…,然后选择Invalidate and Restart。这个操作清空了项目中的缓存信息。
四、重建整个工程并重新配置。
这四种方法可能会解决这个问题,我试了第三种,然后第二种应该也是可以的,第一种和第四种小心尝试。

其实之前经常用print来进行调试,这是一种粗暴的方法,可以直接将错误信息打印出来。
嗯,经过一番折腾,也算是对pycharm的debug调试有了一些认识,可能还有一些其它的未掌握的技巧,留着以后慢慢探索吧。

Pycharm Debug调试(纯干货)相关推荐

  1. pycharm Debug调试

    竖栏 横栏 另外:debug调试时使用参数 把参数全部输入进入就可以了 新手必会,pycharm的调试功能(史上最详篇) - 知乎新手必会,pycharm的调试功能(史上最详篇)前言Debug调试,是 ...

  2. Python: pycharm debug调试点击结束断点报错KeyboardInterrupt

    ​ 原因:pycharm版本的问题 mac:  MacBook Pro(13英寸,M2,2022年​) pycharm版本: python版本:python3.9 没有debug,代码可以正常运行 d ...

  3. pycharm debug Can‘t process net command: 501 1 0.1 WIN

    使用pycharm debug 调试的时候报错: Traceback (most recent call last):File "C:\PyCharm 2018.2.4\helpers\py ...

  4. Pycharm:debug调试时使用参数

    一种操作方法: 文章链接:MAC下使用Pycharm,debug调试时怎样带参数 今天在网上找了一个例子敲代码,因为我使用的是PyCharm,例子运行时需要带参数,开始不知道怎么带参数,网上搜了大半天 ...

  5. Pycharm远程调试之ssh remote debug(二)

    Pycharm远程调试之ssh remote debug (一) 上一篇我们讲了怎么去初步创建一个远程debug的工程,这篇我们来更深一下,讲一下当我们要修改Interperter时要怎么做. 1.创 ...

  6. pycharm连接云端服务器后实现远程debug调试

    目录 1. 情况说明 2.具体实现措施,举例说明 (1) 准备工作 (2)具体实施 3. debug 调试 1. 情况说明 我的情况是通过pycharm连接云端服务器,然后实现代码的pytorch分布 ...

  7. Python Debug调试技巧

    ------·今天是2020年的第14天·------ 这是ITester软件测试小栈第89次推文 Debug 对于任何coding人士都是一项非常重要的技能,它能够帮助我们准确的定位错误,发现程序中 ...

  8. pycharm 怎么调试html,pycharm怎么调试程序

    PyCharm调试程序,cmd中输入的变量怎么设置 PyCharm调试程序,cmd中输入的变量的设置方法 CMD dos定义变量,DOS下也只有环境变量可以用: SET [variable=[stri ...

  9. pycharm debug code -1073741819

    pycharm debug code -1073741819 参考: https://blog.csdn.net/perfectnihil/article/details/77618372 因为,se ...

  10. 程序员,想要彻底弄懂Redis,这15点你一定要明白~(纯干货)

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:Java实现QQ登录和微博登录个人原创+1博客:点击前往,查看更多 作者:耿直的小码农 来源:https://s ...

最新文章

  1. 2017-2018中国物联网产业全景图谱报告——物联网对产业深度变革已开启
  2. javascript笔记——点击按钮(或超链接)如何跳转到另外一个页面并执行目标页面的js函数...
  3. 撑起整个互联网的7大开源技术
  4. 日常生活小技巧 -- SecureCRT上传和下载文件
  5. 点赞模块设计 - Redis缓存 + 定时写入数据库实现高性能点赞功能
  6. Y Combinator 创业课 2018 @北京
  7. 世界地球日:全国网友用手机种出“保护黄河幸福林”
  8. 在集设海量拍摄配色案例 | 轻松掌握高级感配色,再也不愁没有灵感
  9. TIOBE 6 月编程语言排行榜:Perl 成为 Python 过分炒作的牺牲品?
  10. 【读书笔记】100个Switf必备tips
  11. matplotlib -plt.rcparams.update
  12. 【快速高斯模糊的实现】
  13. Codejock Xtreme MFC 图形界面控件包
  14. MCSA / Windows Server 2016 安装,配置和管理 Nano Server
  15. win10 系统下CAD2009缩放卡顿问题解决
  16. 最简单PS双重曝光效果制作教程
  17. 石榴——转自田维《花田半亩》
  18. 【车道线检测论文阅读笔记——经典论文粗读汇总】
  19. Adolescent Architecture
  20. 官方rom提取原签名工具_官方和第三方ROM的提取与分解

热门文章

  1. 计算机专业职称入深户,深圳市人才引进入深户新政策
  2. 桌面图标出现混乱,图标文件混乱无法显示怎么修复
  3. 怎么用dos系统进入服务器,如何进入dos系统(非常实用的几个DOS使用技巧)
  4. Appium桌面版连接Android手机定位页面元素
  5. 详解 Kubernetes ReplicaSet 的实现原理
  6. html网页设计导航栏制作教程,使用CSS制作立体导航栏
  7. HDU--2015-TO-2019--假期实在是太无聊了....
  8. 坐在自己的命运之中——《大先生》鲁迅一生的最后一分钟
  9. 形形色色的Linux 发行版代号都在这里
  10. Exchange 日常管理六之:创建邮箱数据库