`
king_tt
  • 浏览: 2260367 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

使用PDB调试Python程序

 
阅读更多

本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序
源码例子
例如,有模拟税收计算的程序:
#!/usr/bin/python

def debug_demo(val):

if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05


#~def debug_demo

if __name__ == "__main__":

debug_demo(4500)
debug_demo函数计算4500的入账所需的税收。
如何调试?
1.加入断点
在需要插入断点的地方,加入红色部分代码:如果_DEBUG值为True,则在该处开始调试(加入_DEBUG的原因是为了方便打开/关闭调试)。
#!/usr/bin/python
_DEBUG=True
def debug_demo(val):
if _DEBUG == True:
import pdb
pdb.set_trace()

if val <= 1600 :
print "level 1"
print 0
elif val <= 3500 :
print "level 2"
print (val - 1600) * 0.05
elif val <= 6500 :
print "level 3"
print (val - 3500) * 0.10 + (3500-1600) * 0.05
else:
print "level 4"
print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05


#~def debug_demo

if __name__ == "__main__":

debug_demo(4500)
2.开始运行调试
运行程序./debug_demo.py,得到
> /usr/local/qspace/user_network/debug_demo.py(7)debug_demo()
-> if val <= 1600 :
(Pdb)
-> val <= 1600 : 指示当前执行的语句,(Pdb)等待你的调试指令. pdb的指令很丰富,输入h指令可以查看指令的使用方法。下面简单介绍常用指令:
查看代码上下文,l(小写L)
(Pdb) l
2 _DEBUG=True
3 def debug_demo(val):
4 if _DEBUG == True:
5 import pdb
6 pdb.set_trace()
7-> if val <= 1600 :
8 print "level 1"
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
(Pdb)
左边是行号,右边是代码正文。
监视变量:p 变量名
(Pdb) p val
4500
(Pdb)
单步执行: n
-> elif val <= 3500 :
(Pdb) l
5 import pdb
6 pdb.set_trace()
7 if val <= 1600 :
8 print "level 1"
9 print 0
10-> elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05
加入断点:b 行号
(Pdb) b14
运行到断点: c
(Pdb) c
> /*****
-> print "level 3"
(Pdb) l
9 print 0
10 elif val <= 3500 :
11 print "level 2"
12 print (val - 1600) * 0.05
13 elif val <= 6500 :
14 B-> print "level 3"
15 print (val - 3500) * 0.10 + (3500-1600) * 0.05
16 else:
17 print "level 4"
18 print (val - 6500) * 0.20 + (6500-3500) * 0.10 + (3500-1600) * 0.05
19
执行到函数返回前: r
(Pdb) r
level 3
195.0
--Return--
> /****()
->None
-> print (val - 3500) * 0.10 + (3500-1600) * 0.05
(Pdb)
说明:
pdb还有很多其他很多有用的指令,读者可以自行探索。输入h,h 命令。就可以得到命令的详细帮助。
不过,我个人认为一般无需启动这种调试方法,一般使用日志输出进行调试即可,除非遇到了非常微妙的错误。这时,单步调试的威力便显示出来了。


转载声明: 本文转自http://blogold.chinaunix.net/u2/63996/showart_1817104.html(ChinaUnix)

分享到:
评论

相关推荐

    Python-WebPDB是一个用于Python内置PDB调试器的web界面

    WebPDB将PDB的调试功能与现代Web技术相结合,允许用户通过Web浏览器来远程调试Python程序。这带来了几个显著的优点: 1. **远程调试**:无论你在哪里,只要有网络连接,就可以通过Web浏览器访问并控制远程服务器上...

    使用PDB简单调试Python程序简明指南

    **使用PDB调试Python程序简明指南** 在Python编程中,遇到程序错误或需要深入理解代码执行流程时,我们可以利用内置的调试工具PDB(Python Debugger)。PDB提供了一个交互式的环境,允许开发者逐步执行代码,检查...

    python脚本pdb调试工具使用.pdf

    Python 脚本 pdb 调试工具使用 Python 脚本 pdb 调试工具是 Linux 上的一款功能齐全、使用方便的调试工具。作为一名运维工程师,学习 Python 语言通常是在 shell 基础上开始的,由于 shell 脚本的调试方法简单直接...

    Python使用pdb调试代码的技巧

    Python的pdb模块是内置的调试器,它提供了一个交互式的环境,用于检查程序运行时的状态,帮助开发者定位和修复代码中的错误。pdb允许你在代码中设置断点,逐行执行代码,查看变量的值,以及跟踪函数调用的过程。下面...

    使用pdb模块调试Python程序实例

    在Python中,语法错误可以被Python解释器发现,但逻辑上错误或变量使用错误却不容易发现,如果结果没有符合预期,则需要调试,一个很好的调试工具:Python自带的pdb模块。pdb是Python自带的调试模块。使用pdb模块可以...

    总结用Pdb库调试Python的方式及常用的命令

    使用 Pdb调试 Python的程序的方式主要是下面的三种!下面逐一介绍 命令行加-m参数 命令行启动目标程序,加上-m参数,这样调用 testPdb.py的话断点就是程序执行的第一行之前 本文接下来重点讲到的实例展示就是使用...

    使用PDB模式调试Python程序介绍

    调试Python程序是软件开发过程中不可或缺的环节,尤其是当程序出现异常行为或难以追踪的bug时。PDB提供了丰富的命令供用户使用,以便更加高效地定位和解决问题。 首先,PDB模式的使用语法非常简单。用户可以通过在...

    Python中使用PDB库调试程序

    用pdb调试有多种方式可选: 1. 命令行启动目标程序,加上-m参数,这样调用myscript.py的话断点就是程序的执行第一行之前 复制代码 代码如下: python -m pdb myscript.py 2. 在Python交互环境中启用调试 复制代码 ...

    python-2.7.6.amd64-pdb

    2. `_bsddb.pdb`:这个是Berkeley DB接口模块的pdb文件,允许Python程序使用键值存储数据库。 3. `_ssl.pdb`:这是Secure Sockets Layer (SSL) 和 Transport Layer Security (TLS) 模块的pdb文件,用于加密通信。 4....

    python pdb调试(整理).docx

    ### Python PDB 调试详解 #### 一、PDB简介及基本指令操作 ...总之,PDB作为Python的标准库之一,提供了丰富的调试功能,极大地简化了Python程序的调试过程。掌握这些技巧将有助于提高开发效率,减少调试时间。

    python-3.3.0-pdb.zip

    5. `pyw.pdb` 和 `py.pdb`:可能分别对应Python的窗口应用程序和普通脚本的调试信息。 6. `_freeze_importlib.pdb`:与Python的导入机制有关,可能包含关于冻结和打包Python应用的信息。 7. `_decimal.pdb`:与...

    调试Python程序代码的几种方法总结

    本文将详细介绍几种调试Python程序的方法,主要基于Python2.x版本。 首先,最简单直接的方法就是使用print语句。这种方法通过打印出程序中某些关键变量的值,来观察程序的执行流程和变量的变化情况。比如在上面的...

    编写代码后,最关键的一步就是调试,此笔记记录了pdb调试的常用方法

    Python pdb 调试是 Python 语言中一个强大的调试工具,它可以帮助开发者快速定位和解决程序中的错误。在 Python 中,pdb 是一个built-in 模块,提供了丰富的调试功能。下面是 pdb 调试的常用方法: 一、开始调试 ...

    python的pdb调试命令的命令整理及实例

    python的pdb调试命令的命令整理及实例 一、命令整理 pdb调试命令 完整命令 简写命令 描述 args a 打印当前函数的参数 break b 设置断点 clear cl 清除断点 condition 无 设置条件断点 continue c或者...

Global site tag (gtag.js) - Google Analytics