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++编写代码代价太高,耗费太多的人力.那么 ...
随机推荐
- CCParallaxNode
// 创建cat精灵 CCSprite* cat = CCSprite::create("Image\\grossini.png"); //change the transform ...
- spark repartition
https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-rdd-partitions.html http://s ...
- 李洪强iOS开发之静态库的打包一
李洪强iOS开发之静态库的打包一 //静态库一般做一下几种事情 //1 工具类 算法逻辑 新建工具类LHQTools 定义类方法 + (NSInteger)sumWithNum1: (NSIntege ...
- linux下配置某程序的sudo不用输密码
$ su密码: # cd /etc/# cp sudoers sudoers_bak# vi sudoers 最下面加入一行:ALL ALL = NOPASSWD:/usr/sbin/openconn ...
- Beginning SDL 2.0(6) 音频渲染及wav播放
前面几篇关于SDL的文章介绍的是以画面为主,这里介绍下SDL中针对音频播放提供的机制,以及如何应用. 对于音频而言,有几个概念需要事先了解下,采样率.声道数.量化位数,如果你不清楚的话,麻烦先了解下这 ...
- maven invalid loc header
项目部署之后出现如题错误 清除maven资源库原有的jar,重新下载即可解决
- 在python3.3后urllib2已经不能再用,只能用urllib.request来代替
版权声明:本文为博主原创文章,未经博主允许不得转载. 在python3.3后urllib2已经不能再用,只能用urllib.request来代替 response=urllib2.urlopen(' ...
- iOS开发中的压缩以及解压
事实上,在iOS开发中,压缩与解压,我都是采用第三方框架SSZipArchive实现的 gitHub地址: https://github.com/ZipArchive/ZipArchive 上面有 ...
- 4. 集成学习(Ensemble Learning)Adaboost
1. 集成学习(Ensemble Learning)原理 2. 集成学习(Ensemble Learning)Bagging 3. 集成学习(Ensemble Learning)随机森林(Random ...
- IOS 地图移动中心点获取
MKMap显示地图后,如果用户移动了地图,自己定义的数据就需要刷新了,所以这个时候,中心点的经纬度就比较重要了. 本文演示如何获取经纬度 在MKMapViewDelegate里有个方法 - (void ...