Python程序里用pdb方法进行调试时出现错误,pythonpdb,调试的测试程序impor
Python程序里用pdb方法进行调试时出现错误,pythonpdb,调试的测试程序impor
调试的测试程序
import pdbimport sysdef add(num1=0, num2=0): print('add') return int(num1) + int(num2)def main(): print(sys.argv) pdb.set_trace() # 添加断点 addition = add(sys.argv[1], sys.argv[2]) print(addition)if __name__ == '__main__': main()
注释:由于segmentfault限制了pre的height,为了可读所以分为两部分截取
使用pdb单步调试step进入add函数内部后为什么会出现两条相同的return int(num1) + int(num2)语句?
$ python test.py 1 2['test.py', '1', '2']> /home/testenv/test.py(9)main()-> addition = add(sys.argv[1], sys.argv[2])(Pdb) s # step into add function--Call--> /home/testenv/test.py(3)add()-> def add(num1=0, num2=0):(Pdb) n> /home/testenv/test.py(4)add()-> print('add')(Pdb) nadd> /home/testenv/test.py(5)add()-> return int(num1) + int(num2)(Pdb) n--Return--> /home/testenv/test.py(5)add()->3-> return int(num1) + int(num2)
下面也出现了两条相同的print语句,只是一条是main(),另外一条是main()->None。而且print(addition)后程序不是应该退出吗?为什么最后还要回到main才能退出?
(Pdb) n> /home/testenv/test.py(10)main()-> print(addition)(Pdb) n3--Return--> /home/testenv/test.py(10)main()->None-> print(addition)(Pdb) n--Return--> /home/testenv/test.py(12)<module>()->None-> main()(Pdb) n退出成功
Google 搜索 「Power pdb user」
看完+稍微实践, 你就能精通pdb
PS: 官方关于 pdb 的文档, 我觉得内容太少, 根本没有把pdb给介绍清楚
编橙之家文章,
相关内容
- Python序列sort与bisect.insort及heapq.heappush哪种效率最高效,
- Python有大数据处理性能优化好方法吗,python性能优化
- python requests发送post Page load erro问题,requestserro,post过去
- 想用powershell写命令完成启动软件和调用python脚本怎么做
- mac电脑不支持gbk,python post数据出现乱码怎么破?,gbkpy
- linux下想打包pyqt程序为可执行程序用什么工具?,lin
- python3 snmp都用什么扩展模块,python3snmp,最近用flask弄了
- Python执行mysql语句time时间不正确何解,pythonmysql,类库
- 求Python实现跨平台实现全局性一句话方法,python全局性
- Python引用传递是在什么场景下,python引用传递场景,我写
评论关闭