python程序中的调试:pdb
python中,也有像c/c++语言的 gdb 一样的调试程序,即pdb;
只简单说明一个怎么使用它。
假设已经有了一个python程序名为 test.py, 我们在命令行输入以下内容,即可以进行 python的调试阶段了:
python -m pdb test.py // 不加m 不行; //例如:
yinheyi@ubuntu:~/grub$ python -m pdb test.py
> /home/yinheyi/grub/test.py()<module>()
-> def fun():
(Pdb)
(至于为什么加 –m 参数或它表示什么意思呢? 查了一下,与 sys.path 有关,加入到 sys.path 列表里的变量不一样,反正不管了;)
进入以后,我们可以通过 输入 h 得到帮助, 输入 h ,会显示常用的命令,如下所示:
(Pdb) h Documented commands (type help <topic>):
========================================
EOF bt cont enable jump pp run unt
a c continue exit l q s until
alias cl d h list quit step up
args clear debug help n r tbreak w
b commands disable ignore next restart u whatis
break condition down j p return unalias where Miscellaneous help topics:
==========================
exec pdb Undocumented commands:
======================
retval rv
此时,比如我们输入: help b, 就会显示 b 命令的用法了;
下面列出常用的命令:
s 单步执行(会进行函数)
n 执行下一行, 不会进行函数;
c 继续执行,直到遇到断点;
r return, 执行代码直到当前函数返回;
p 打印变量值,如: p a, 打印变量a 的值;
l 查看当前要执行的代码段;默认列出11行(将执行的行的上下各5行);当带一个参数时,会列出给定行的上下各5行; 如果给定两个参数并用逗号分开,分列出所给定范围内的行;
b 设置断点, 可以是行号,也可以是函数名;
cl 用于清除断点;如果不加任何参数,则清除所以断点, 如果加上用空格分开的断点的编号,则清除它们,如: cl 2 ,清除断点2和断点4;
disable 使某个断点失效; 后面跟用空格分开的 一系列断点号,如: disable ;
enable 使某些断点发挥作用; 用法与 disable类似;
exit 退出;
python程序中的调试:pdb的更多相关文章
- 在Python程序中的进程操作,multiprocess.Process模块
		
在python程序中的进程操作 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创建的.因此,运行起 ...
 - python 全栈开发,Day38(在python程序中的进程操作,multiprocess.Process模块)
		
昨日内容回顾 操作系统纸带打孔计算机批处理 —— 磁带 联机 脱机多道操作系统 —— 极大的提高了CPU的利用率 在计算机中 可以有超过一个进程 进程遇到IO的时候 切换给另外的进程使用CPU 数据隔 ...
 - python程序中使用MySQL数据库
		
目录 python程序中使用MySQL数据库 1 pymysql连接数据库 2 sql 注入 3 增删改查操作 4 pymysql使用总结 python程序中使用MySQL数据库 1.python中使 ...
 - Python程序中的进程操作--—--开启多进程
		
Python程序中的进程操作-----开启多进程 之前我们已经了解了很多进程相关的理论知识,了解进程是什么应该不再困难了,刚刚我们已经了解了,运行中的程序就是一个进程.所有的进程都是通过它的父进程来创 ...
 - Python程序中的线程操作(线程池)-concurrent模块
		
目录 Python程序中的线程操作(线程池)-concurrent模块 一.Python标准模块--concurrent.futures 二.介绍 三.基本方法 四.ProcessPoolExecut ...
 - Python程序高效地调试
		
现在我在debug python程序就只是简单在有可能错误的地方print出来看一下,不知道python有没像c++的一些IDE一样有单步调试这类的工具?或者说各位python大神一般是怎么debug ...
 - MFC程序中使用调试宏ASSERT()、ASSERT_VALID()、VERIFY()和TRACE()的区别
		
其实这篇文章说的很明白了:http://dev.gameres.com/Program/Other/DebugMacro.htm 结论如下: 1.ASSERT()测试它的参数,若参数为0,则中断执行并 ...
 - 在非MFC程序中使用调试宏 ASSERT(),VERIFY()和 TRACE()
		
游戏制作已经开始采用C++了,却鲜有人选择使用MFC.但笔者觉得的 ASSERT(),VERIFY()和 TRACE()这几个宏很好用.所以就想自己写一个版本来适应Windows平台下不同的工程类型. ...
 - python 程序中调用go
		
虽然python优点很多,但是有一个致命的缺点就是运行速度太慢,那么python程序需要一些计算量比较大的模块时一般会调用c或者c++的代码来重写,但是c/c++编写代码代价太高,耗费太多的人力.那么 ...
 
随机推荐
- 菜鸟学SSH(二)——Struts2国际化手动切换版
			
国际化(internationalization,i18n)和本地化(localization,l10n)指让产品(出版物,软件,硬件等)能够适应非本地环境,特别是其他的语言和文化.程序在不修改内部代 ...
 - redhat 6、7配置yum源
			
# wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo # sed -i ' ...
 - 查准与召回(Precision & Recall)
			
Precision & Recall 先看下面这张图来理解了,后面再具体分析.下面用P代表Precision,R代表Recall 通俗的讲,Precision 就是检索出来的条目中(比如网页) ...
 - django rest_framework入门四-类视图APIView
			
上节,我们使用函数视图,用了@api_view装饰器来修饰,这一节,我们介绍类视图APIView,显然,类视图更符合面向对象的原则. 1.使用类视图APIView重写API 类视图APIView,取代 ...
 - iOS开发之按钮的基本使用
			
实现功能: 点击向上的箭头,按钮图片向上,移动,点击向下的箭头,按钮图片向下移动 点击向左的箭头,按钮图片向左移动,点击向右的箭头,按钮图片向右移动, 点击加号图片放大,点击减号,图片缩小 第一步: ...
 - 【转载】一个Sqrt函数引发的血案
			
转自:http://www.cnblogs.com/pkuoliver/archive/2010/10/06/sotry-about-sqrt.html 源码下载地址:http://diducoder ...
 - 【Bayesian】贝叶斯决策方法(Bayesian Decision Method)
			
已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A).这里先解释什么是条件概率: 表示事件B已经发生的前提下,事件A发生的概率,叫做事件B发生下事件A的条 ...
 - spring AspectJ切入点语法详解  记录以便查阅
			
AspectJ切入点语法详解 6.5.1 Spring AOP支持的AspectJ切入点指示符 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spri ...
 - 如何在wpf实现进度条
			
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; u ...
 - # Writing your-first Django-app-part 5 -test
			
确认bug 写test测试暴露bug 修复bug 更多测试例子 测试一个view The Django test client测试客户端. 提升DemoAppPoll/views.py 测试我们的vi ...