在 Python 中也可以像 gcc/gdb 那样调试程序,只要在运行 Python 程序时引入 pdb 模块(假设要调试的程序名为 d.py):

$ vi d.py

#!/usr/bin/python

def main():

i, sum = 1, 0

for i in xrange(100):

sum = sum + i

print sum

if __name__ == '__main__':

main()

$ python -m pdb d.py

运行上面的命令后进入以下界面,可以输入类似 gdb 的命令来改变程序的执行流程:

$ python -m pdb 1.py

> d.py(3)()

-> def main():

(Pdb)

list 显示程序的最近代码段:

(Pdb) list

1 #!/usr/bin/python

2

3 ->def main():

4 i, sum = 1, 0

5 for i in xrange(100):

6 sum = sum + i

7 print sum

8

9 if __name__ == '__main__':

10 main()

[EOF]

next 或者 n 执行下一行代码:

(Pdb) next

> d.py(9)()

-> if __name__ == '__main__':

用 break 在第6行设置一个断点:

(Pdb) break d.py:6

Breakpoint 1 at d.py:6

(Pdb) list

1 #!/usr/bin/python

2

3 def main():

4 i, sum = 1, 0

5 ->for i in xrange(100):

6 Bsum = sum + i

7 print sum

8

9 if __name__ == '__main__':

10 main()

[EOF]

如果想在函数处设置断点:

(Pdb) break d.main

d.py:3

(Pdb) list

1 #!/usr/bin/python

2

3 Bdef main():

4 ->i, sum = 1, 0

5 for i in xrange(100):

6 sum = sum + i

7 print sum

8

9 if __name__ == '__main__':

10 main()

[EOF]

还可以给断点加条件,比如设置条件只有当 sum > 50 的时候才 break:

(Pdb) break d.py:6, sum > 50

Breakpoint 1 at d.py:6

如果想查看某个变量的值,可以用 pp 命令打印出来:

(Pdb) step

> d.py(5)main()

-> for i in xrange(100):

(Pdb) pp sum

0

可以直接在程序里使用 pdb 模块,import pdb 后 pdb.set_trace():

#!/usr/bin/python

import pdb

def main():

i, sum = 1, 0

for i in xrange(100):

sum = sum + i

pdb.set_trace()

print sum

if __name__ == '__main__':

main()

这样只要运行程序 ./d.py 就可以直接运行到 print sum 处:

$ ./d.py

> d.py(9)main()

-> print sum

(Pdb)

总结

命令

用途

break 或 b

设置断点

continue 或 c

继续执行程序

list 或 l

查看当前行的代码段

step 或 s

进入函数

return 或 r

执行代码直到从当前函数返回

exit 或 q

中止并退出

next 或 n

执行下一行

pp

打印变量的值

help

帮助

简述python调试程序_简单调试 Python 程序相关推荐

  1. python搭建_简单_交易系统【转载】

    python搭建_简单_交易系统[转载] 构建account_class 类 构建所需函数 构建最大回撤.收益率.回测函数 构建银行翻倍.选股函数 回测实证分析 (转自 https://www.joi ...

  2. python协同过滤调用包_简单的python协同过滤程序实例代码

    本文研究的主要是python协同过滤程序的相关内容,具体介绍如下. 关于协同过滤的一个最经典的例子就是看电影,有时候不知道哪一部电影是我们喜欢的或者评分比较高的,那么通常的做法就是问问周围的朋友,看看 ...

  3. 调试内存_如何调试Python 程序的内存泄露问题

    IT服务圈儿 有温度.有态度的IT自媒体平台 本文经公众号:未闻Code(ID:itskingname) 授权转载 如需二次转载请联系出处 如果大家在 Linux 或者 macOS 下面运行一段可能导 ...

  4. python编写接口自动化脚本_简单的python http接口自动化脚本

    摘抄:今天给大家分享一个简单的python脚本,使用python进行http的接口测试,脚本很简单,逻辑是:读取excel写好的测试用例,然后根据excel中的用例内容进行调用,判断预期结果中的返回值 ...

  5. python写小程序-用python写个简单的小程序,编译成exe跑在win10上

    每天的工作其实很无聊,早知道应该去IT公司闯荡的.最近的工作内容是每逢一个整点,从早7点到晚11点,去查一次客流数据,整理到表格中,上交给素未蒙面的上线,由他呈交领导查阅. 人的精力毕竟是有限的,所以 ...

  6. linux可以生成pdb调试信息吗,Linux通过使用pdb简单调试python计划

    python自带的调试工具库:pdb # -*- coding:utf-8 -*- def func(num): s = num * 10 return s if __name__ == '__mai ...

  7. python对象模型_[译] 用 Python 实现一个最简单的对象模型

    一个简单的对象模型 Carl Friedrich Bolz 是一位在伦敦国王大学任职的研究员,他沉迷于动态语言的实现及优化等领域而不可自拔.他是 PyPy/RPython 的核心开发者之一,于此同时, ...

  8. python书籍_最好的Python书籍,让您像专业程序员一样编程

    Python是一种值得学习的语言.学习Python不仅会激发你用最简单的方式完成高度复杂的任务,还会打破传统编程范型的藩篱.Python是能够改变你的编程方式进而改变你看问题的角度的一种语言. Pyt ...

  9. 微信 小程序 python 渲染_干货 | 微信小程序自动化测试最佳实践(附 Python 源码)...

    本文为霍格沃兹测试学院测试大咖公开课<微信小程序自动化测试>图文整理精华版,进阶学习文末加群! 随着微信小程序的功能和生态日益完善,很多公司的产品业务形态逐渐从 App 延升到微信小程序. ...

最新文章

  1. java线程同步以及对象锁和类锁解析(多线程synchronized关键字)
  2. 华为FusionSphere概述——计算资源、存储资源、网络资源的虚拟化,同时对这些虚拟资源进行集中调度和管理...
  3. c++几种智能指针比较
  4. Android Stdio换源以及配置项目
  5. 【2016年第4期】大数据应用系统的消息驱动架构
  6. pythonbool类型数组生成_对numpy中布尔型数组的处理方法详解
  7. ue4cmd怎么调用_虚幻引擎UE4-命令行使用的一些详细技巧
  8. 微信收款语音播报android,电脑微信收款语音播报软件下载
  9. Markdown常用样式
  10. 100多个经典常用的jQuery插件大全实例演示和下载
  11. 荣耀magicbookpro升级鸿蒙,荣耀MagicBook Pro 2020到底好不好?答案就在这里
  12. MIT 6.828 Lab1(从引导扇区开始)
  13. NYOJ - 找点【贪心】
  14. 【资源分享】Echarts中国地图、世界地图JSON数据(包括省市、经纬度、世界地图国家名称中英对照)
  15. 微信公众号开发(4)-实现PC扫码登录
  16. Goldengate辅助数据库进行升级
  17. VB Treeview控件 介绍与使用
  18. Ros 与 STM32 之Ros串口同设备USB固定
  19. CAS-自定义CAS Server端登录页面
  20. 爬取高德地图全国poi的爬虫

热门文章

  1. 数据库分类与四大类NoSQL数据库
  2. 用 scipy.weave 嵌入 C 语言
  3. 财务有必要学python吗-8年老财务:财务分析学python就能提高效率?一半人是骗子...
  4. python入门视频教程-Python入门视频全套教程
  5. 零基础学python图文版-零基础学Minecraft编程(图文版)中文pdf_Python教程
  6. 免费python课程排行榜-Python培训机构排行榜哪家更好?老男孩Python全栈开发
  7. python怎么使用-如何使用 Python 开始建立
  8. python新手小项目实例-有没有简单一点的 Python 小例子或小项目?
  9. 语音识别哪家强?百度 、苹果、科大讯飞都有制胜法宝
  10. elementUI 学习入门之 Button 按钮