【vc++精品源码栏目提醒】:网学会员vc++精品源码为您提供使用PDB调试PYTHON程序 - 其它资料参考,解决您在使用PDB调试PYTHON程序 - 其它资料学习中工作中的难题,参考学习。
使用PDB调试PYTHON程序官方文档http://docs.python.org/library/pdb.html使用ECLIPSE开发PYTHON的可以看看下面这篇文章http://wenku.baidu.com/view/e52edcd428ea81c758f578ae.html习惯在命令调试的参考下面贴的两篇博客Python自带了一个调试器叫pdb,和Gnu的gbd类似。
下面用一个简单的程序来演示pdb的功能。
使用 pdb package 时 交相应的调试脚本做为参数,利用如下命令 PYTHONHOME/lib/pdb.py就行了:如: PYTHONHOME/lib/pdb.py test.pytest.py 为我们将要调用的python 脚本进行pdb的互动调试方式下:12 1Pdb更方便的方法,建立批处理文件,放在 PYTHONHOME底下。
例如一个 pdb.bat里面的内容是:c:python23libpdb.py 1如此可在任何地方进行调试。
进入 pdb要设置断点c:pdb test.py 1Pdbb 1Breakpoint 1 atc:test.py:1()后面的VC调试中断方式。
break filename:linenofunction condition在指定的文件、行数或函数下进行断点设置。
也可为中断点设定中断条件例如要在 for循环下进行中断设置或某个值出现时中断,就可以进行相应中断点条件的设置。
如果没有能数,则列出所有中断点。
tbreak filename:linenofunction condition和 b 一样,但只会中断一次continue继续运行,直到中断点F5step执行当前(F10next和 s 一样执行目前行。
。
不同的是如果是参数,则进入函数内F11where列出目前 call stack 中的所在层。
down在 call stack 中往下移一层。
u p在 call stack 中往上移一层。
如果在上移一层之后按下 n 则会在上移之后的一层,再去执行下一层。
clear bpnumber bpnumber ...清除指定的中断点。
如果无参数,则清除所有中断点disable bpnumber bpnumber ...取消所有中断点的功能,但是保留中断点enable bpnumber bpnumber ...恢昨中断点功能。
ignore bpnumber count设定中断的忽略次数,如果没指定count则初始为0.当count 为0,则中断点会正常动作。
若有指定 count则每次执行该中断。
count 就少 1直到 count 为0condition bpnumber condition为某个中断点,设定中断条件。
jump lineno跳到某行执行。
只有在 call stack 的最底部才能作用。
list first last列出目前所在文件中的的位置。
边续地args列出目前函式所接受的参数p expression在目前的环境context中求出 expression 的值。
pp expression和 p 命令类似但是使用 pprint module没用过 pprint可看 Python Library Reference。
alias name command以一个别名代替所有调试除错命令。
类似c/c 的 macro详情参考 Python Library Reference。
unalias name取消某个 alias。
statement在目前的环境context中执行描述quit退出调试模式。
程序代码如下:/usr/bin/pythonimport pdba aaapdb.set_traceb bbbc cccfinal a b cprint final对这个程序进行调试:1:在文件前面加上这一句,引入调试的模块。
import pdb2:在要开始调试的一行加上pdb.set_trace该程序已导入pdb模块,并在代码中添加的pdb.set_trace跟踪点。
现在让我们来运行该程序。
localhost:/python/pdb python pdbtest.py--Return-- /usr/lib/python2.3/pdb.py992set_trace-None- Pdb.set_trace 从跟踪点开始执行Pdb n n 读入下一行代码 /root/python/pdb/pdbtest.py6- b bbbPdb n /root/python/pdb/pdbtest.py7- c cccPdb p b p 打印变量值bbbPdb l l 显示当前执行位置 2 3 import pdb 4 a aaa 5 pdb.set_trace 6 b bbb 7 - c ccc 8 final a b c 9 print final10EOFPdb n /root/python/pdb/pdbtest.py8- final a b cPdb n 如果命令和上次的一样,也可直接按回车,不用输入n /root/python/pdb/pdbtest.py9- print finalPdb naaabbbccc--Return-- /root/python/pdb/pdbtest.py9-None- print finalPdb p abcfinalaaa bbb ccc aaabbbcccPdbaaa bbb ccc aaabbbcccPdb nlocalhost:/python/pdb 返回shell其它命令:pprint 查看一个变量值nnext 下一步sstep 单步可进入函数ccontinue继续前进llist看源代码pdb还有很多命令,用help命令就可以列出所有的pdb命令,用help p可以查询p命令的说明。
本文讨论在没有方便的IDE工具可用的情况下,使用pdb调试python程序源码例子例如,有模拟税收计算的程序:/usr/bin/pythondef debug_demoval: if val