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. 用!important解决IE和Mozilla的布局差别(转)
  2. buntu linux下建立stm32开发环境: GCC安装以及工程Makefile建立
  3. 支持delete吗_Spark Delta Lake 0.4.0 发布,支持 Python API 和部分 SQL
  4. 腾讯和阿里在B站“打起来了”,你何时见过这场面?
  5. Xcode做简易计算器
  6. CDNOW用户消费行为分析报告(python+ppt)
  7. 我们想赚钱,首先要帮助我们的团队,让他们提升能力让他们赚到钱
  8. js/jQuery中的宽高
  9. [收藏] 今天的存储解决方案:直连式存储(DAS)、存储区域网络(SAN)、网络接入存储(NAS)
  10. 报错undefined symbol: _ZN3c104impl23ExcludeDispatchKeyGuardC1ENS_11DispatchKeyE
  11. html里获得农历时间,获取阴历(农历)和当前日期的js代码_javascript技巧
  12. android虚拟机固定横屏幕竖屏,用VBox虚拟机安装Android 屏幕90度翻转竖屏设置
  13. Linux socket编程(一):客户端服务端通信、解决TCP粘包
  14. iteye上总结的编程精华资源
  15. 自动做游戏(1):自动生成人物侧面图
  16. 将tif文件转换成mrc文件
  17. 新能源产业链全景图(建议收藏)
  18. 【Vue3】搭建vue3项目以及环境
  19. python上网行为分析_转:用 Python 一键分析你的上网行为, 看是在认真工作还是摸鱼...
  20. itext7读取pdf 中文_实例6:用Python给PDF批量加密

热门文章

  1. EasyUI中datagrid控件的使用 设置多行表头(两行或多行)
  2. JS中生成和解析JSON
  3. 活在当下,为所当为,顺其自然
  4. QT QDateTime、QTime 与 QString 的相互转换
  5. 缺少values和无效列类型
  6. Java高级开发工程师面试题
  7. 码分复用matlab仿真代码,频分复用时分复用系统MATLAB仿真.doc
  8. 常用H5标签-第一部分
  9. 回顾艰难且不失温度的 2022 年 | 文中附「双12免单王」获奖名单
  10. PDF转换PPT方法讲解