标签:__ Python Ipdb py 键入 DPGN ipdb Debug main
Python Ipdb Debug简单使用
参考链接:
https://xmfbit.github.io/2017/08/21/debugging-with-ipdb/
https://blog.csdn.net/u014015972/article/details/51705292
https://wulc.me/2018/12/21/ipdb 使用小记/
1 安装
pip install ipdb
2 使用
ipdb 的使用方法一般有两种:集成到源代码 或 通过命令交互。
1、集成到源代码:(不推荐)
import ipdb
var1 = 23
ipdb.set_trace()
var2 = 23
# some code
上面的代码会在执行完 var1 = 23
这条语句之后停止,然后进入 debug
环境
2、通过命令交互(推荐)
通过 python -m ipdb your_code.py
来运行你要调试的代码,即可进入 debug
环境。
# 如下,便是我 debug 的一个片段
ipdb> b 583
Breakpoint 4 at /root/FSL/DPGN/main.py:583
ipdb> c
> /root/FSL/DPGN/main.py(583)<module>()
581
582 if __name__ == '__main__':
4-> 583 main()
下面给大家介绍一些常用的命令:
# 1 帮助命令:键入 h 即可查看所有命令,键入 h <command> 即可查看 <command> 的作用,如下:
ipdb> h
Documented commands (type help <topic>):
========================================
EOF cl disable interact next psource rv unt
a clear display j p q s until
alias commands down jump pdef quit source up
args condition enable l pdoc r step w
b cont exit list pfile restart tbreak whatis
break continue h ll pinfo return u where
bt d help longlist pinfo2 retval unalias
c debug ignore n pp run undisplay
Miscellaneous help topics:
==========================
exec pdb
ipdb> h p
p expression
Print the value of the expression.
# 2 执行下一条语句:键入 s 即可进入函数内部(若下一条语句为调用一个函数),键入 n 即执行下一条语句
# 3 打断点:键入 b line_num 的方式即可在本文件的line_num行打上断点, 键入 b file_name:line_num 即可给指定的文件打上断点,如下:
ipdb> b 565 # 本文件
Breakpoint 4 at /root/FSL/DPGN/main.py:565
ipdb> b /root/FSL/DPGN/backbone.py:62 # 指定文件
Breakpoint 5 at /root/FSL/DPGN/backbone.py:62
# 4 一直执行直到遇到下一个断点:键入 c 执行代码直到遇到某个断点或程序执行完毕
# 5 打印某个变量的值:键入 p <Variables>
ipdb> p enc_module
ResNet12()
# 6 查看某一变量的类型: 键入 whatis <Variables>
ipdb> whatis enc_module
<class 'backbone.ResNet12'>
# 7 查看调试到哪里:键入 w
ipdb> w
/root/miniconda/envs/DPGN/lib/python3.5/bdb.py(431)run()
430 try:
--> 431 exec(cmd, globals, locals)
432 except BdbQuit:
<string>(1)<module>()
/root/FSL/DPGN/main.py(583)<module>()
581
582 if __name__ == '__main__':
1-> 583 main()
> /root/FSL/DPGN/main.py(487)main()
2 486 enc_module = ResNet12(emb_size=config['emb_size'], cifar_flag=cifar_flag)
--> 487 print('Backbone: ResNet12')
488 elif config['backbone'] == 'convnet':
# 8 退出:键入 q
ipdb> q
Post mortem debugger finished. The main.py will be restarted
后续会继续补充,未完,待续……(10.29 02:29)
标签:__,Python,Ipdb,py,键入,DPGN,ipdb,Debug,main 来源: https://www.cnblogs.com/SethDeng/p/15478494.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。