Pycharm--Debug调试

1,561 阅读3分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

一、打断点

    一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。注意断点会将对应的代码行标记为红色,取消断点的操作也很简单,在同样位置再次单击即可。

图片

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

可以尝试对断点属性进行个性化更改,然后观察图标的变化。

图片

图片

二、代码调试

(1)PyCharm开始运行,并在断点处暂停

(2)断点所在代码行变蓝,意味着Pycharm程序进程已经到达断点处,但尚未执行断点所标记的代码。

(3)Debug tool window窗口出现,显示当前重要调试信息,并允许用户对调试进程进行更改。

三、调试按钮

图片

1、图片

    show execution point (F10) 显示当前所有断点

2、图片

    step over(F8) 单步调试。若函数A内存在子函数a时,不会进入子函数a内执行单步调试,而是把子函数a当作一个整体,一步执行

3、图片

    step into(F7) 单步调试。若函数A内存在子函数a时,会进入子函数a内执行单步调试。(会进入python自带模块以及自己编写的模块)

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) 直接跳到下一个断点。代码执行到光标所在的那行

8、图片

    可以继续任意计算

图片

四、watch窗口

图片

    在Watches窗口中,单击加号,输入期望查看的变量名称,然后回车。当变量没被定义时,我们可以在控制台里给它定义,也可以通过执行下一步,利用代码中的赋值来定义。

五、Console窗口:这里可以直接编译python代码,执行一些python命令。

图片

六、注意

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

图片

程序本身应该没有错误,就是不能正常debug。

下面记录几种解决方式:

1、关闭Pycharm,删除工程目录下的.idea文件夹并重启。

2、删除所有的断点。可以点击下图所示的两个叠在一起的红色原点进行操作。

3、点击Pycharm的File>>Invalidate Caches / Restart…,然后选择Invalidate and Restart。这个操作清空了项目中的缓存信息。

4、重建整个工程并重新配置。

    这四种方法可能会解决这个问题,我试了第三种,然后第二种应该也是可以的,第一种和第四种小心尝试。