如何用pdb进行python调试
车韵琦 | 浏览(31621)
分享 | 2017-05-12 10:17
我要回答 已有1个回答
关注问题
郭思渝
2017-05-12

本文章讲述何用pdb进行python调试讲解.  手边  没IDE,面着python调试犯愁,参考本文;(pdb 命令调试)   (pdb)help  用pdb进行python调试,用基本gdb差,  先看简单例:  epdb1.py .# epdb1.py -- experiment with the Python debugger, pdb  a = "aaa"  b = "bbb"  c = "ccc"  final = a + b + c  print final  比要程序进行调试:  1:文件前面加句,引入调试模块  import pdb  2:要始调试行加pdb.set_trace()文件变:  # epdb1.py -- experiment with the Python debugger, pdb  import pdb  a = "aaa"  pdb.set_trace()  b = "bbb"  c = "ccc"  final = a + b + c  print final 运行程序,断点停,gdb类似,  执行命令:  直接车重复前条命令!  p(print) 查看变量值  n(next) 步  s(step) 单步,进入函数  c(continue)继续前进  l(list)看源代码  用pdb调试种式选:  1.命令行启目标程序,加-m参数,调用myscript.py断点程序执行第行前  python -m pdb myscript.py  2. Python交互环境启用调试  >>> import pdb  >>> import mymodule  >>> pdb.run('mymodule.test()')  3.比较用,程序间插入段程序,相于般IDE面打断点启debug,种式hardcode if __name__ == "__main__" :  a = 1  importpdb  pdb .set_trace()  b = 2  c = a + b  print( c)  运行脚本,pdb.set_trace()定,看调试提示符(Pdb)  用调试命令 h(elp),打印前版本Pdb用命令,要查询某命令,输入 h [command],例:"h l" - 查看list命令  l(ist),列前要运行代码块  (Pdb) l  497 pdb.set_trace()  498 base_data = {}  499 new_data = {}  500 try:  501 execfile(base_file_name,{},base_data)  502 -> execfile(new_file_name,{},new_data)  503 except:  504 logger.writeLog("error! load result log error!")  505 print "load cmp logs error!"  506 raise Exception, "load cmp logs error!"  507>断点设置  (Pdb)b10 #断点设置本py第10行  或(Pdb)bots.py:20 #断点设置 ots.py第20行  删除断点(Pdb)b #查看断点编号  (Pdb)cl 2 #删除第2断点  >运行  (Pdb)n #单步运行  (Pdb)s #细点运行 ,  (Pdb)c #跳断点  >查看  (Pdb)p param #查看前 变量值  (Pdb)l #查看运行某处代码  (Pdb)a #查看全部栈内变量 b(reak), 设置断点,例 "b 77″,前脚本77行打断点,能输入函数名作参数,断点打具体函数入口,敲b,显示现全部断点  (Pdb) b 504  Breakpoint 4 at /home/jchen/regression/regressionLogCMP.py:504 condition bpnumber [condition],设置条件断点,面语句第4断点加条件"a==3"  (Pdb) condition 4 a==3  (Pdb) b  Num Type Disp Enb Where  4 breakpoint keep yes at /home/jchen/regression/regressionLogCMP.py:504  stop only if a==3 cl(ear),面带参数,清除指定断点(我Python2.4没功!!!);带参数清除所断点  (Pdb) cl  Clear all breaks? y disable/enable,禁用/激断点  (Pdb) disable 3  (Pdb) b  Num Type Disp Enb Where  3 breakpoint keep no at /home/jchen/regression/regressionLogCMP.py:505 n(ext),让程序运行行,前语句函数调用,用n进入调用函数体  s(tep),跟n相似,前函数调用,s进入调用函数体  c(ont(inue)),让程序运行,直遇断点  j(ump),让程序跳转指定行数  (Pdb) j 497  > /home/jchen/regression/regressionLogCMP.py(497)com pareLog()  -> pdb.set_trace() a(rgs),打印前函数参数  (Pdb) a  _logger =  _base = ./base/MRM-8137.log  _new = ./new/MRM-8137.log  _caseid = 5550001  _toStepNum = 10  _cmpMap = {'_bcmpbinarylog': 'True', '_bcmpLog': 'True', '_bcmpresp': 'True'} p,用命令,打印某变量  (Pdb) p _new  u'./new/MRM-8137.log' !,叹号面跟着语句,直接改变某变量  q(uit),退调试  ==============================================================================================  python使用pdb模块进行调试  import pdb  pdb.set_trace()  使用python -m pdb mysqcript.py式  (Pdb) 自停第行等待调试,看看 帮助  (Pdb) h  说明几关键 命令  >断点设置  (Pdb)b 10 #断点设置本py第10行  或(Pdb)b ots.py:20 #断点设置 ots.py第20行  删除断点(Pdb)b #查看断点编号  (Pdb)cl 2 #删除第2断点  >运行  (Pdb)n #单步运行  (Pdb)s #细点运行   (Pdb)c #跳断点  >查看  (Pdb)p param #查看前 变量值  (Pdb)l #查看运行某处代码  (Pdb)a #查看全部栈内变量  (Pdb)w 列目前call stack 所层  (Pdb)d call stack往移层  (Pdb)u call stack往移层移层按 n ,则移层执行叙述,前 function call 自返  (Pdb)cl 清除指定断点没带参数,则清除所断点  (Pdb)disable 取消所断点功能,仍保留些断点  (Pdb)enable 恢复断点功能  (Pdb)ignore 设定断点忽略数没指定 count,其初始 0 count 0 ,断点作若指定 count,则每执行该断, count 少 1,直 count 数 0  (Pdb)condition bpnumber [condition]  (Pdb)j(ump) lineNo. 跳某行执行 call stack 底部才能作用  (Pdb)l 列目前所档案位置连续 l 命令直列档案结尾,使用指定行数或范围打印  (Pdb)pp p 命令类似,使用 pprint module(没用 pprint,详情请参考 Python Library Reference)  (Pdb)alias "别名"代替"群除错命令",点类似 c/c macro(详情请参考 Python Library Reference)  (Pdb)unalias 取消某 alias  (Pdb)[!]statement 目前环境(context)执行叙述  转载

匿名
邀您回答

买房子,先用商业贷款的话,在以后可以转成公积金贷款么

显示全部

上海退休公积金提取问题

显示全部

夫妻双方能不能同时用公积金贷款买一套房子?

显示全部

建设银行 住房公积金卡挂失补办

显示全部

住房公积金怎么办

显示全部

计提工资时,个人承担的社保和公积金计入什么会计科目?

显示全部

社会保险是指五险还是五险一金? 这住房公积金算社会保险里吗

显示全部

住房公积金算社保吗

显示全部

公积金贷款最高能贷多少?

显示全部

如果每月公积金扣4000,那工资是多少?单位和个人各交10%

显示全部
智联介绍 | 人才招聘 | 网站地图 | 加入智联 | 法律声明 | 保密承诺 | 联系方式 | 常见问题 | | Investor Relations 您对 Zhaopin.com 有任何建议或意见请 联系我们
未经 Zhaopin.com 同意,不得转载本网站之所有招聘信息及作品 智联招聘网版权所有© 1997-2017
京ICP备12025925号 电信业务审批[2001]字第233号函 京公网安备 11010502002133号