简介

    今天在用pycharm调试程序感觉各种不爽啊。用myeclipse习惯了,以为所有的调试都一样方便,见识了pycharm(还特意查了下,pycharm是python中较好的IDE了,不大理解诶)才理解myeclipse的强大。

    本以为调试都大同小异,结果有几个地方和想当然的不一致,还是整理下备查吧。

 

先说说坑吧

1,图2,左侧的那个按钮,在debug执行过程中时变灰。这个没问题。问题是pycharm在run时程序非常快,debug时可能非常慢。在debug一段dataframe代码时,等2-3分钟没反应,按钮都是灰的,点不了,还以为电脑死机了。简化后发现是执行速度过慢导致的。目前还不清楚为何有这么大差别。

2,菜单分位2部分,图2所示,一般情况下执行下一个断点(F9)和其他那几个都是在一起的,pycharm是分开的。

3,点击debug后,程序完全没反应,留意下Mute Breakpoints为非选中状态才行,重启pycharm,或尝试新建新python文件,然后在调试。

 

启动调试

界面右上角

pycharm 配置debug 深度学习 pycharm使用debug_Python

图1

 

debug相关功能

界面左下角,使用到的在下图已经圈出

pycharm 配置debug 深度学习 pycharm使用debug_重启_02

图2

 

 

样例程序

01    def helloworld():

02        print 'hello world'

03    a=1

04    b=2

05    c=3

06    for  i in range(1,3):

07        print 'i',i

08    a=1

09    b=2

10    c=3

11    helloworld()

12    a=1

13    b=2

14    c=3

 

程序完整序列:3,4,5,6,7,6,7,8,9,10,11,2,12,13

F8:step over 单步,3,4,5,6,7,6,7,8,9,10,11,12,13

F7:step into 进入,3,4,5,6,7,6,7,8,9,10,11,2,11,12,13

F9:resume program 重启程序 实际是 下个断点

特殊的:11行断点且2断点,则11停2停,2执行后不再回到11,和F7有区别

Alt+shift+F7:step into mycode,这个没看明白什么意思,自己调试时debug停在第一个断点,然后按这个,就会依次执行各代码,无论有无断点,更像F8(F7如果没遇到函数也和F8一样的,可以理解为单步),按照字面意思应该是“只进入自己的函数”,和F7类似的,不过它怎么判断是否是自己函数呢?同文件?同author,额不深究了,反正不打算用。

shift+F8:跳出,只对函数内有效,跳出函数后会回到函数所在行,(类似11,2,11),不是函数地方跳出会执行到结束

alt+F9:run to cursor 不打算用

可能常用就是F8,F9,F7,shift+F8

较特殊的:

F7进入,shift+F8跳出,不是一对。

F9的英文和实际含义感觉也不大一致。

 

友情链接:

Python 代码调试技巧:https://www.ibm.com/developerworks/cn/linux/l-cn-pythondebugger/

Python 基础——一张图告诉你PyCharm如何进行断点调试:

Python 程序如何高效地调试?:https://www.zhihu.com/question/21572891

Pycharm使用debug对Python断点测试心得:https://www.noniu.com/jiaocheng/219.html