[Python] Debugger in Pycharm
From: http://blog.csdn.net/u013088062/article/details/50214459
From: http://blog.csdn.net/u013088062/article/details/50216015
From: http://blog.csdn.net/u013088062/article/details/50221825
最全Pycharm教程(11)——Pycharm调试器之断点篇
调试设置
调试过程
设置断点
条件性控制断点
调试设置
4、Run/debug 配置知识
每当你通过Pycharm来运行或者调试一个脚本文件时,都需要一个特殊的文件来记录脚本的名称、工作目录以及其他的重要调试信息。Pycharm已经针对特定模式预先创建好了配置文件,避免我们手动去创建。
每次你单击运行或者调试按钮时(或者通过快捷菜单执行相同的操作),我们实际上都是在当前工作模式中加载了对应的配置文件。详见product documentation。
5、断点
一个断点标记了一个代码行,当Pycharm运行到该行代码时会将程序暂时挂起。Pycharm提供了几种形式的断点 types of breakpoints,其图标 icon各不相同。详见 product documentation中的Breakpoints tutorial。
6、实例
在你的Python工程中,创建一个新的Python文件,命名为ThreadSample.py,然后输入以下代码:

7、设置断点
首先,在源码中设置断点。通过单击代码左侧的空白槽来在对应位置生成断点:

8、开始调试
选择 run/debug configuration "ThreadSample",然后按下Shift+F9(或者单击工具栏中的绿色蜘蛛形式的按钮),调试开始,并在第一个断点处停止:

断点所在的行变为蓝色,说明Pycharm已经击中了这个断点,但尚未执行这行代码。
9、更改调试窗口的布局
此时Pycharm进入调试界面模式Debug tool window,各个控件的具体功能详见know how to use this tool window。
加入你并不喜欢当前的默认布局,例如你希望将调试器输出窗口作为一个独立的窗口显示以便更方便的观察当前的调试状态,你可以对布局进行个性化定制。
首先,我们先把调试工具窗口独立出来,只需要右击窗口的标题栏,然后选择Floating mode:

接下来将控制台窗口移动成为一个独立的窗口,只需要拖动控制台窗口将其拖出测试窗口即可:

可以通过单击工具栏上的
按钮来恢复到默认布局。
更多信息请参见PyCharm Tool Windows和Moving tabs and area
10、添加一个变量查看器
接下来我们介绍如何在调试过程中观察变量的状态。我们需要对其设置一个查看器。在Watches窗口中,单击绿色的加号,输入期望查看的变量名称,
例如这里输入delay,然后回车。当然你也可以采用另外一种方式:在编辑窗口中右击变量名,在快捷菜单中选择Add to watches:
此时观察Watches窗口,发现delay变量目前尚未定义:

稍后你将会看到如何对这个变量进行赋值,以及其在watches窗口中的变化。接下来我们为get_thread_name()函数设置一个查看器作为练习。
11、浏览帧
此时你能看到一个名为 MainThread 进程,其中包含三帧。单击每一帧来显示其变量状态以及相对应的py文件,同时会对有问题的代码行以高亮显示:

调试过程
12、简单的调试
在每个断点处都单击
按钮来使程序继续运行,观察控制台的脚本输出:

13、步进式脚本调试
让我们对当前脚本进行进一步的调试。单击
重启调试进程,程序再次运行到第一个断点处并暂停。
在调试窗口的顶端,你会看到一列包含步进调试按钮的工具栏 stepping buttons。
单击
,或者按下F8,你会发现蓝色标记移动到了下一行:

与此同时,当你暂停了脚本执行时(单击
按钮),你能看到高亮表示的函数print_time(),你可以选择其中的任何一个进程,并观察变量的变化:

14、运行到当前光标处
假如你不想加入断点,但仍希望代码能够调试运行到某一指定的代码行,如何操作?
返回调试界面的第二个断点处,在对应行插入输入光标。

单击
按钮,或者按下Alt+F9快捷键,该行代码变为高亮显示:

15、如何调用Debug命令
值得一提的是所有的调试操作不仅仅可以通过调试工具栏的对应按钮来完成,还可以通过主菜单中Run菜单下的命令来实现,以及相关的快捷菜单项。下面给出一些常用的调试菜单命令及其对应的快捷键列表:

更多控件描述参见Debug tool window。
设置断点
3、断点属性
有两种方法来浏览和改变代码属性:
(1)首先,有一个单独的置顶窗口来显示断点属性。
(2)有一个断点对话框 Breakpoints dialog来显示当前应用中所存在的所有断点及其属性。
4、设置断点
选中对应代码行,然后执行下面步骤(二选一):
(1)单击左边空白槽
(2)按下Ctrl+F8快捷键
这是一个触发开关式的操作,即可以不断的重复操作以移除/添加断点。
作为练习,在第16行设置断点:

5、浏览并改变断点属性
为了浏览单独一个断点的属性,只需右击它即可:

激活断点
6、启用和关闭断点
首先,清空复选框中的Line 16 in ThreadSample.py enabled选项,此时断点会失效,同时图标中心会变为绿色:

OK,再次勾选复选框,图标恢复原状,断点生效。
条件性控制断点
7、条件性代码悬挂
假设你希望Pycharm在当前代码处只挂起某一个线程,而其他线程能够正常通过断点,操作非常简单,为断点添加一个条件即可:

接下来我们开始脚本调试(单击工具栏中的
按钮),你会看到实际上Pycharm只在当前断点处挂起了Thread-7,而Thread-6正常通过了该断点:

8、如何忽略某些断点?
通常情况下,你只需要在某一个断点处停下来,而希望在其他断点能够正常通过。
换句话说就是我们并不希望Pycharm在断点处停止,但我们仍需要保留对应断点来作为标记,如何实现?
在对话框中取消Suspend复选框的勾选,此时断点属性对话框中会显示更详细的信息:

勾选一下两个选项:
(1)Log messages to console:选中这个选项后,Pycharm会在命中该断点后在控制台上显示相关重要信息。
(2)Log evaluated expressions:选中这个选项之后,Pycharm会计算下方输入框中给出的特定表达式并显示在控制台上。

顺便说一下,在下发输入框中输入表达式时Pycharm同样提供了拼写提示功能(Ctrl+空格)。OK,重新运行调试,Pycharm会在调试控制台中显示一下信息:
- 应用的基本信息。
- 击中断点时的注册信息
- 表达式的计算结果

9、浏览所有断点
以上你使用到的所有断点相关的对话框都能帮助你获取断点的大部分重要信息。不过我们通常使用 Breakpoints dialog对话框来完成大部分断点处理工作,它会显示当前项目中的所有断点的属性信息,并方便我们对其进行更改。
我们可以通过以下几种方式来打开这个对话框:
- Ctrl+Shift+F8快捷键
- 在主菜单中选中Run → View Breakpoints
- 在断点属性快捷对话框中单击More (Ctrl+Shift+F8)
- 在调试窗口中单击
按钮。
10、创建一个临时断点
假设你希望这样一个断点,即Pycharm在命中它之后就将命中的断点删除。Pycharm提供了一个特殊的复选项Remove once hit,默认情况下是不会启动这个机制的。
加入Suspend复选框已经选中,接下来再选中Remove once hit复选框,观察断点的图标的变化:

重新调试,发现Pycharm只会在断点处暂停一次,之后便会将其移除,以保证之后的程序执行不会受到阻碍:

[Python] Debugger in Pycharm的更多相关文章
- Python开发工具PyCharm个性化设置(图解)
Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧. JetBrains PyCharm Pro 4.5.3 中文 ...
- Python开发工具PyCharm个性化设置
Python开发工具PyCharm个性化设置,包括设置默认PyCharm解析器.设置缩进符为制表符.设置IDE皮肤主题等,大家参考使用吧 1.设置默认PyCharm解析器: 操作如下: Pyt ...
- 一、Python安装与Pycharm使用入门
一.安装Python 1.Linux下安装 一般系统默认已安装2.6.6版本,升级成2.7版本, 但 2.6 不能删除,因为系统对它有依赖,epel源里最新的也是2.6版本,所以以源代码的方式安装2. ...
- Python开发之---PyCharm初体验
PyCharm 的初始设置(知道) 目标 恢复 PyCharm 的初始设置 第一次启动 PyCharm 新建一个 Python 项目 设置 PyCharm 的字体显示 PyCharm 的升级以及其他 ...
- Python安装与Pycharm使用入门
一.安装Python 1.Linux下安装 一般系统默认已安装2.6.6版本,升级成2.7版本, 但 2.6 不能删除,因为系统对它有依赖,epel源里最新的也是2.6版本,所以以源代码的方式安装2. ...
- [Python开发工具] Pycharm之快捷键
[Python开发工具] Pycharm之快捷键 1 全局搜索: Ctrl+Shift+F,不过PyCharm的更强大, 你可以点选左侧某个目录后再按Ctrl+Shift+F, 这样默认会搜索改目录; ...
- Python常用工具PyCharm
PyCharm 是我用过的python编辑器中,比较顺手的一个.而且可以跨平台,在macos和windows下面都可以用,这点比较好. 首先预览一下 PyCharm 在实际应用中的界面:(更改了PyC ...
- The Python Debugger Pdb
Python Debugger pdb The Python Debugger Pdb 可以直接在命令行中启动,调试程序 也可以写在代码中 命令行使用 可以直接在命令行指定要进行调试的程序 pytho ...
- python学习-9 pycharm的安装
1.python 开发IDE : pycharm.eclipse等等 安装: 百度搜索pycharm 就可以了,去官网下载专业版.(百度有各种破解方法) #不要 ...
随机推荐
- C#中使用DES和AES加密解密
C#中使用DES和AES加密解密 2008-01-12 09:37 using System;using System.Text;using System.Security.Cryptography; ...
- 进度的Block在子线程调用
[_pictureView sd_setImageWithURL:[NSURL URLWithString:item.image2] placeholderImage:nil options:SDWe ...
- C#:实现快捷键自定义设置
代码下载 C#实现快捷键自定义设置 需求 项目开发过程中,需要实现类似有道词典的软件设置中的自定义快捷键功能,如下图所示: 当我们相继按下Ctrl+Alt+M的时候,软件就会自动将快捷键显示在文本框中 ...
- WIFI WPA1/2 Crack for Windows
0x00 前言 目前WIFI WPA破解主要 以“aircrack-ng”为代表,运行于Linux系统( 如Kali Linux ),Windows系统比较少见,主要是Windows系统下WIFI网卡 ...
- 不会用ant打包、部署项目的工程师,不是一个好程序员(测试)
副标题:利用ant脚本 自动构建svn增量/全量 系统程序升级包 首先请允许我这样说,作为开发或测试,你一定要具备这种本领.你可以手动打包.部署你的工程,但这不是最好的方法.最好的方式就是全自动化的方 ...
- HTML5手机APP开发入(5)
HTML5手机APP开发入(5) 回顾一下 HTML5手机APP开发入(4) 如何自定义Component,directive HTML5手机APP开发入(3) 如何实现MVC的代码重构,自定义一个P ...
- 滑动返回类库SwipeBackLayout的使用问题,解决返回黑屏,和看到桌面
SwipeBackLayout是一个很好的类库,它可以让Android实现类似iOS系统的右滑返回效果,但是很多用户在使用官方提供的Demo会发现,可能出现黑屏或者返回只是看到桌面背景而没有看到上一个 ...
- C#中的Linq to Xml详解
这篇文章主要介绍了C#中的Linq to Xml详解,本文给出转换步骤以及大量实例,讲解了生成xml.查询并修改xml.监听xml事件.处理xml流等内容,需要的朋友可以参考下 一.生成Xml 为了能 ...
- AngularJS 模态对话框
本文内容 项目结构 运行结果 index.html mymodal.js 参考资料 本文讲解 Angular JS 实现模式对话框.基于 AngularJS v1.5.3.Bootstrap v3.3 ...
- 机器学习技法--学习笔记04--Soft SVM
背景 之前所讨论的SVM都是非常严格的hard版本,必须要求每个点都被正确的区分开.但是,实际情况时很少出现这种情况的,因为噪声数据时无法避免的.所以,需要在hard SVM上添加容错机制,使得可以容 ...