Python Ipdb Debug简单使用
2021/10/29 9:10:06
本文主要是介绍Python Ipdb Debug简单使用,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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 Debug简单使用的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-30Python中''') 是什么?-icode9专业技术文章分享
- 2024-11-26Python基础编程
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程