python里的pdb调试

准备

  • 环境:64位win11
  • 使用工具:vscode,当然也可以用pycharm等其他编辑工具
  • 调试源代码(猜数字小游戏):
import random
quit = 0
while quit == 0:level = int(input("输入游戏难度:"))item = 100if level == 1:passelif level == 2:item = 500elif level == 3:item = 1000answer = random.randint(1,item)guess = int(input("请输入你猜的数:"))flag = 0while flag == 0:if guess == answer:print("恭喜你猜对了!")flag = 1elif guess > answer:print("大了!请输入小一点的数",end = " ")guess = int(input("请输入你猜的数:"))elif guess < answer:print("小了!请输入大一点的数",end = " ")guess = int(input("请输入你猜的数:"))quit = int(input("是否进行下一次?是按0,否按1:"))

引入pbd模块

在python里面想要使用pdb调试,我们首先需要引入pdb模块,也就是在代码最前面加上这样一行代码
import pdb
只有这样我们才能继续进行。

设置断点

你可以在任何一行设置断点,让代码在运行到断点的时候停下来,和编辑软件自带的调试工具直接在代码旁边点上一点不同,你需要在你想停下来的地方上一行加上这样一行代码:
pdb.set_trace()
在开始运行之后你的代码就会停止在这个断点处,并且在终端进入pdb模式,如下我们熟悉的猜数字小游戏(使用软件vscode):

我们可以看到我在输入level之后一行设置了断点,在我运行之后,输入了level的值之后,程序就停了下来,进入了pdb模式。

常用命令

  • 列出脚本清单 :l
    ‘l’是list的缩写,我们可以再终端输入l来列出脚本清单,也就是显示当时代码的上下文。如下图:

  • 打印表达式结果:p
    p是print的缩写,在终端中输入
    p 表达式,表达式……
    的方式来打印你需要看到的量,比如下图:

    打印quit,发现其值为0

  • 下一行:n
    我们程序需要继续往前跑,这时候我们就可以输入 ‘n’(next的缩写)来进行单步调试:

    可以看到,程序已经一步步的运行。

  • 运行程序直至遇到下一个断点:c
    c为continue的缩写,在终端输入c之后,程序会从第一个断点一直运行到下一个断点:

如图,第一个断点停下之后在终端输入c,程序继续运行到第二个断点之后会再次停下。

  • 退出pdb调试:q
    q为quit的缩写,意思也就是退出:

    可以看到,在终端输入q之后,前面的pdb消失了,pdb调试已退出。

更多

pdb调试学习来源
pdb更多命令

python的pdb调试相关推荐

  1. python之pdb调试

    python之pdb调试 1. 引言 2. 三种调试 2.0 pdb调试常见命令 2.1 执行时调试 -- 单步调试 2.1.1 语法 2.1.2 实例 2.2 交互调试 2.3 程序里埋点 1. 引 ...

  2. python pdb_python pdb调试方法分享

    复制代码 代码如下: import pdb def pdb_test(arg): for i in range(arg): print(i) return arg pdb.run("pdb_ ...

  3. Linux系统怎么打开pdb格式,linux环境下python的pdb调试方法

    Svn Patch 中文乱码 关于Patch svn打patch的介绍:巧用svn create patch(打补丁)方案解决定制版需求 svn创建patch 1.在SVN的提交列表中,右键选择&qu ...

  4. pdb断点命令_python的pdb调试命令的命令整理及实例

    python的pdb调试命令的命令整理及实例 一.命令整理 完整命令 简写命令 描述 args a 打印当前函数的参数 break b 设置断点 clear cl 清除断点 condition 无 设 ...

  5. 使用pdb调试python

    python pdb调试 python -m pdb myscript.py #注意这会重启myscript.py,这样启动的话,代码每一行都是一个节点 也可以在程序中这么设置断点: import p ...

  6. linux可以生成pdb调试信息吗,Linux通过使用pdb简单调试python计划

    python自带的调试工具库:pdb # -*- coding:utf-8 -*- def func(num): s = num * 10 return s if __name__ == '__mai ...

  7. python pdb 调试

    命令行 Python -m pdb xxx.py l ----> list 显示当前代码 n ----> next 向下执行一行代码 c ----> continue 继续执行代码 ...

  8. 使用PDB调试Python程序的完整实践

    从Java一路走来,习惯了使用IDEA来调试代码,平时写python也都是使用Jupyter notebook,但是现在逐渐转行到Python开发,突然在linux下进行python代码调试,就会显得 ...

  9. Python 调试工具 PDB(Linux 环境下调试)

    转载:http://blog.163.com/gjx0619@126/blog/static/12740839320114995947700/ 在python中使用pdb模块可以进行调试 import ...

最新文章

  1. mac终端命令-----常规操作
  2. 轻量人脸检测,5个关键点
  3. OC中protocol、category和继承的区别
  4. spring cloud 学习之 服务注册和发现(Eureka)
  5. SQL语言之DQL语言学习(二)条件查询
  6. Vue中父组件调用子组件的方法
  7. 《C语言编程初学者指南》一1.9 本章小结
  8. .net framework与java,分布式事务:.NET Framework与.NET Core
  9. Windows编程—Windows驱动开发环境搭建
  10. 我是如何学会不再担心和喜欢SQL中的NULL的
  11. Event.ADDED_TO_STAGE的本质
  12. 摘抄和总结--确保搞砸人工智能项目的十种方法
  13. 阶段3 2.Spring_05.基于XML的IOC的案例1_3 测试基于XML的IOC案例
  14. spring boot  mybatis 事务回滚
  15. google Play 应用被下架暂停
  16. 惯导平台稳定系统matlab仿真研究,惯导平台稳定系统MATLAB仿真研究
  17. BaseAdataer基本设配器
  18. 2022年济南12行政区高新技术企业补贴政策及认定条件汇总
  19. 如何删除mysql数据库的重复数据
  20. 计算机开始菜单打不开是什么原因,电脑开始菜单打不开怎么办_win7开始菜单点击无效解决方法...

热门文章

  1. Python告诉你,究竟都是哪些人在听《惊雷》!
  2. Qt——功能:序列帧动画
  3. Docker 部署 SeafilePro + OnlyOffice(CentOS版)
  4. 维修中心计算机系统英文,电脑维修基本英文
  5. 逻辑回归损失函数和对数损失函数的关系
  6. Windows10安装docker遇到Hyper-V启用失败解决办法整理
  7. redHat7.9配置yum源
  8. 05 python 要点 (函数式编程)
  9. StringTokenizer的用法
  10. js取整数、取余数、取小数点后几位的方法