Python-Pdb-调试

1. 启动pdb

1)终端使用 python -m pdb ./xxx.py 来启动

2)在需要调试的位置前添加 import pdb;pdb.set_trace() 语句

2. 常用指令

0. 不输入任何指令直接敲回车,重复执行上一个指令
1. n                	执行下一行
2. p xx 				打印变量xx的内容 
3. pp xx 				美化打印变量xx的内容
4. l 					展示当前运行语句所处的位置即行数
5. python command		执行简单的pyhton语句,比如 type(xx), 
6. h 					查看帮助信息,也可以像help -n这样使用
7. until [line]			一直执行,直到某一行 
8. exit / q				退出调试
9. step / s      		进入一个函数,如果一个函数因为参数问题写了好几行,会在遍历这几行之后跳回函数名所在那行,然后使用s
10. return / r 			执行完当前函数并返回
11. break / b [line]	在当前行设置断点
12. continue / c		一直执行到下一个断点
13. clear				清除断点
14. a 					查看传入参数	

3. 可能存在的问题

  1. 在.sh脚本文件中调用python文件,无法进入python pdb调试

  2. 在多线程状况下可能无法调试,在训练网络时,由于使用多线程加载数据可能会导致pdb无法运行

  3. pdb 模块对含有yield表达式的生成器函数进行调试时可能会遇到一些限制。在Python中,生成器函数(包含yield表达式的函数)的执行是通过生成器对象的迭代来实现的。当生成器函数被调用时,它会返回一个生成器对象,而不是立即执行函数体内的代码。生成器函数的执行被挂起,并且可以通过多次迭代生成器对象来逐步执行函数体内的代码。

  4. 尝试使用break /path_to_file/filename:func_name 来添加断点,报错,但是break /path_to_file/filename:line_num可以正常使用

4. 参考链接

https://blog.youkuaiyun.com/qq_43799400/article/details/122582895

https://blog.youkuaiyun.com/weixin_42384444/article/details/119053011

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值