Python调试器-pdb的使用
【简介】
pdb是python自带的一个包,为python程序提供了一种交互的源代码调试功能。
【使用方法】
1. 使用命令:
python -m pdb xxx.py #可以直接进入单步执行模式
2. 在需要调试的地方设置断点(比较常用)
|
import pdb pdb.set_trace() |
【常见命令】
|
break 或 b |
设置断点 |
|
continue 或 c |
继续执行程序到下一个断点 |
|
list 或 l |
查看当前行的代码段 |
|
step 或 s |
进入函数 |
|
return 或 r |
执行代码直到从当前函数返回 |
|
exit 或 q |
中止并退出 |
|
next 或 n |
执行下一行 |
|
clear 或 cl |
清除断点 |
|
p 或 pp |
打印变量的值 |
|
cl |
清除断点 |
|
help |
帮助 |
b #打印断点位置
b+lineno #在此行设置断点
b+文件:lineno #同上
b+function #在函数第一行设置断点
tbreak #临时断点,与b一样,但是执行结束会自动删除
cl #清除所有断点
cl+文件名:lineno #清除断点
l+起始行号 #查看上下五行
l+起始行号,结束行号 #查看一段
【其他命令】
|
jump 或 j |
执行到行号 |
|
w |
打印函数栈 |
|
disable |
停用断点 |
|
enable |
启用断点 |
|
args 或 a |
列出当前执行函数的函数 |
|
run |
重新启动debug,相当于restart |
【注意】
1. 在debug的时候可以改变变量的值。
2. 直接输入Enter,会执行上一条命令。
3. 解释第一条,输入PDB不认识的命令,PDB会将其作为一条普通python命令来执行。
Python调试器-pdb的使用的更多相关文章
- python 调试模式pdb(转)
标准库的pdb pdb是Python自带的一个库,为Python程序提供了一种交互式的源代码调试功能,包含了现代调试器应有的功能,包括设置断点.单步调试.查看源码.查看程序堆栈等.如果读者具有C或C+ ...
- 「Python调试器」,快速定位各种疑难杂症!!
现在很多的编辑器其实都带着「调试程序」的功能,比如写 c/c++ 的 codeblocks,写 Python 的 pycharm,这种图形界面的使用和显示都相当友好,简单方便易学,这个不是我这篇文章要 ...
- python调试之pdb
一.PDB调试命令 pdb调试命令 完整命令 简写命令 描述 args a 列出当前函数的参数 break b <行号> 在某一行设置断点 break b <文件名>:< ...
- Python 调试器之pdb
使用PDB的方式有两种: 1. 单步执行代码,通过命令 python -m pdb xxx.py 启动脚本,进入单步执行模式 pdb命令行: 1)进入命令行Debug模式,python -m pdb ...
- python 调试器
pdb https://www.zhihu.com/question/21572891 https://zhuanlan.zhihu.com/p/43846098
- Pdb— Python的调试器
参考:Pdb- Python的调试器 pdb 模块定义了一个交互式源代码调试器,用于 Python 程序.它支持在源码行间设置(有条件的)断点和单步执行,检视堆栈帧,列出源码列表,以及在任何堆栈帧的上 ...
- 学习笔记之Python调试 - pdb
python调试神器——pdb - 软谋python https://mp.weixin.qq.com/s/w3Xw8I_zh7MFq2dx5kdQXw 优秀开发者必备技能包:Python调试器 - ...
- 12、python单步调试工具pdb
pdb 第4种方式是启动Python的调试器pdb,让程序以单步方式运行,可以随时查看运行状态.我们先准备好程序: # err.py s = '0' n = int(s) print(10 / n) ...
- win10下正确使用Sublime Text搭建python调试环境
pycharmt等IDE虽然用着爽,但毕竟在速度.资源上还是比较让人不爽的. 使用IDE无非是图个方便省事,特别是像我这种有些记性差的来说. IDE说起来方便于的几个地方就是: 1.语法颜色高亮 ...
随机推荐
- 0-1分布(伯努利分布)、n 重伯努利分布(二项分布)
1. 0-1 分布(伯努利分布) 0-1分布又名两点分布,或叫伯努利分布. P{X=k}=pk(1−p)1−k 其中 k=0,1. 伯努利分布未必一定是 0-1 分布,也可能是 a-b 分布,只需满足 ...
- Android官方教程翻译(4)——启动另一个Activity
Starting Another Activity 启动另一个Activity PREVIOUSNEXT THIS LESSON TEACHES YOU TO 这节课教你 1. Respond t ...
- 堆(stack) 之 c 和 c++模板实现(空类默认成员函数 初谈引用 内联函数)
//stack 的基本操作 #include <iostream> using namespace std; const int maxn = 3; typedef struct Stac ...
- android module 模块共用远程包
在项目有多模块,需要使用到同一个第三方包时,引入报错,个人解决方法如下 1. 在模块build.gradle 文件中配置maven远程地址 可从app下的build.gradle文件里复制 allpr ...
- 《得知opencv》注意事项——矩阵和图像处理——cvAdd、cvAddS and cvAddWeighted
矩阵和图像操作 (1)cvAdd函数 其结构 void cvAdd(//图像加和 const CvArr* src1,//第一个原矩阵 const CvArr* src2,//第二个原矩阵 CvArr ...
- Leetcode 226 Invert Binary Tree 二叉树
交换左右叶子节点 /** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * ...
- 简明Python3教程 8.控制流
简介 迄今为止我们见到的所有程序总是含有一连串语句并且python忠实的顺序执行它们. 那么如何改变它们的执行顺序呢?例如你希望程序根据不同情况作出不同反应,按照当前时间分别 打印出’Good Mor ...
- WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片
原文:WPF中实现图片文件转换成Visual对象,Viewport3D对象转换成图片 1.图片文件转换成Visual对象 private Visual CreateVisual(string imag ...
- Android学习路径(22)应用Fragment建立动态UI——构建一个灵活UI
当你设计你的应用来支持多个屏幕尺寸.你能够基于可用的屏幕空间通过在不同的布局上重用fragment来优化用户体验. 比如,在一个手机上.使用单面板(一次仅仅显示一个fragment)的用户体验更加合适 ...
- 知乎C++问题整理
如何平衡性能,合理选择C++STL集装箱? ANSER: 首先要搞清楚,假设STL问题,那么问题出在哪里? STL能够简单地觉得就是算法+数据结构,全部容器的算法选择和实现都是经过精心设计和严格測试的 ...