(日常搬砖)python3.7内置调试器PDB

Python pdb调试器原理与高阶实战:从命令行到生产环境 pdb 是 Python 内置的交互式源码级调试器,其本质是基于 sys.settrace() 实现的解释器内建跟踪机制,直接运行于当前 Python 进程中,共享内存与执行上下文。相比 IDE 调试器侧重可视化呈现,pdb 的核心价值在于字节码级控制粒度、零依赖环境兼容性及对运行时模型的深度暴露——这使其成为 Docker、CI/CD、SSH 服务器等无 GUI 场景下不可替代的调试基础设施。它天然支持异步任务分析、post-mortem 崩溃回溯、多进程嵌入及动态条件断点,广泛应用于生产故障定位、第三方 阅读详情

Python自带一个调试器, 在Python 3.7之后甚至成为内置调试器,这就是PDB.
这是使用Python的用户需要掌握的基本技能。
掌握此法后,可在jupyter notebook等对代码进行调试。

1. 如何实现

只需以下几行代码即可实现pdb模块。

import pdb	#导入pdb包
pdb.set_trace()	#在程序中设置断点

例如,下程序为一个采用命令行参数并执行假发和减法的操作。

import pdb
import sys

def add(num1=0, num2=0):
    return int(num1) + int(num2)
    
def sub(num1=0, num2=0):
    return int(num1) - int(num2)
    
def main():
    #Assuming our inputs are valid numbers
    num1 = 33
    num2 = 44
    pdb.set_trace() # <-- 这个表示添加断点
    addition = add(num1, num2)
    print (addition)
    subtraction = sub(num1, num2)
    print (subtraction)
    
if __name__ == '__main__':
    main()

执行后,会出现交互框。可在交互框中输入指令,进行下一步操作。
在这里插入图片描述

2.下一行 n

在输入框里输入n,并按回车,即可运行到下一行。
在这里插入图片描述

3. 打印 p

在输入框里输入p + 变量名,并按回车,即可输出变量实际存储的值。
在这里插入图片描述
在这里插入图片描述

4. 手动在当前位置添加断点 b

5. 退出 q

6. 其他

ENTER (重复上次命令)
c (继续)
l (查找当前位于哪里)
s (进入子程序,如果当前有一个函数调用,那么 s 会进入被调用的函数体)
n(ext) 让程序运行下一行,如果当前语句有一个函数调用,用 n 是不会进入被调用的函数体中的
r (运行直到子程序结束)
!<python 命令>
h (帮助)
a(rgs) 打印当前函数的参数
j(ump) 让程序跳转到指定的行数
l(ist) 可以列出当前将要运行的代码块
p(rint) 最有用的命令之一,打印某个变量
q(uit) 退出调试
r(eturn) 继续执行,直到函数体返回

#如发现环境中未安装, 可以运行下方代码来安装ipdb

!pip install ipdb -i https://pypi.tuna.tsinghua.edu.cn/simple
Python调试硬核指南:为什么pdb比IDE断点更可靠 Python调试本质是运行时状态观测,其核心在于保持程序原始执行语义。pdb作为标准库内置的交互式调试器,不依赖外部代理,避免IDE调试器对信号处理、线程调度和GIL释放的干扰,确保异步协程、多线程及生产环境下的行为一致性。它通过注入REPL实现‘调试即开发’,支持动态执行、变量修改与无副作用观测,技术价值体现在精准复现偶发bug、零依赖部署排查及底层内存/对象身份分析。典型应用场景包括线上支付网关故障定位、asyncio任务异常捕获、threading.local数据丢失追踪等。本文深入解析pdb设计原理 阅读详情

相关推荐

数据结构与算法 —— 最短路径Dijkstra算法(迪杰斯特拉)详细图解以及python实现

前两章我们讲到了关于图的基本知识,和广度/深度优先搜索。本章,我们将介绍加权图和最短路径的相关知识。最短路径和最小生成树是图论中常见的问题。最短路径是指在一个图中找到两个节点之间的最短路径,最小生成树是指在一个图中找到一个连通子图,使得所有节点都能够互相到达,且总权值最小。最短路径算法常见的有floyd算法(弗洛伊德算法)和 dijkstra算法(迪杰斯特拉)。本文只介绍dijkstra算法。最短路径运用非常广泛,比如在导航系统中,确定两个地点间哪条路线最短;

‘’ 2万+

VSCode中,the debugger in the python extension no longer 3.7

VSCode中,the debugger in the python extension no longer 3.7。

weixin_40222848的博客 3498

三、STM32F103ZET6最小系统

stm32最小系统除去主控CPU外,需要包含,电源电路,复位电路,BOOT电路,时钟电路(因为stm32有内置时钟,对时钟要求不高的话,可以不要)。NRST引脚其实芯片已经用一个约40K的电阻上拉了,所以理论上来说是不需要再外接上拉电阻的,但我看大家都是有外接上拉的,心里没有底,不管这么多,先预留着。吃过亏,特意查看了芯片手册资料,下图是官方建议的供电方案,图片来自stm32f103zet6数据手册。首先明白目标,单纯的学习软件知识并不是我希望的,我还希望会硬件设计,这样后面才能摆脱开发板。

sevendecsdn的博客 6452

VsCode更新Python插件以后不支持3.6及之前的语言版本Debug

  python3.6算是一个比较古老但是很稳定的版本,但虽然python语言版本的不断更新,官方对于python3.6的维护竟然取消了,这也导致了VsCode里的最新插件不再支持python3.6等语言的Debug功能,具体表现就是一点Debug就闪退当然还是能照常运行的,具体版本的寿命表如下所示   不过说实话,我也是第一次听说同一系列(3.x)的不同版本的维护会有寿命终止这一说,感觉是挺无语的,学学人家C也好啊   上图是VsCode python插件的说明,可以看出想要继续使用Debug功能很重

jst100的博客 1万+

告别C盘空间焦虑!Miniforge环境路径精准配置全攻略

本文深入解析Miniforge虚拟环境默认占用C盘空间的根本原因,即未正确配置`.condarc`文件中的`envs_dirs`路径优先级。通过详细的诊断步骤与配置命令,指导用户将环境路径精准迁移至指定磁盘(如D盘),并分享禁用自动激活、使用`--prefix`参数等高阶技巧,帮助开发者彻底告别C盘空间焦虑,实现虚拟环境的整洁与可控管理。

weixin_28831399的博客 238

Datawhale~数据挖掘实践之序列问题处理~天池·资金流入流出预测-挑战Baseline~Day01~数据探索与分析

写在前面✍ 本系列笔记基于天池平台上“资金流入流出预测-挑战Baseline”学习赛,记录如何完整的打一次数据挖掘类比赛。同时,该比赛属于序列建模问题,希望学习完成这个任务,可以对序列问题的处理有一定的独立思考能力和实践操作能力,可以将所学理论,用编码的形式和实际的问题得到深入。 第一篇,EDA Content: 初步了解赛题及数据 1.1 任务 1.2 用户基本信息数据 1.3 用户申购赎回数据 1.4 收益率表 1.5 银行间拆借利率表 1.6 提交格式 1.7 评分指标 EDA 1 初.

小卜妞的博客 2358

【VSCode运行Python3.6.5项目 无法debug调试的解决办法】

通过度娘找到解决方法是:因为新的python插件不支持python3.7以下版本,需要将vscode中python的插件降级,才能对python3.6的项目DEBUG。但试过多个博主推荐的2022.6.0版本以及2021.12的版本都不行,debug时一闪而过就结束了。最近将VSCode升级为1.69.1版本,结果插件全部升级了一遍,导致原来能运行DEBUG的python3.6.5项目只能运行不能DEBUG了。最后,试着继续降级到2021.7的版本终于可以DEBUG python3.6.5的项目。

operatevip的博客 7713

20、超声多普勒成像技术全解析

本文全面解析了超声多普勒成像技术,涵盖彩色血流成像(CFI)、能量多普勒成像、超快多普勒成像和矢量多普勒成像的原理、流程、优势及临床应用场景。详细探讨了各成像模式的特点,如CFI的血流方向与速度可视化、能量多普勒对小血管的高灵敏度、超快多普勒的高帧率分析能力,以及矢量多普勒消除角度依赖性的创新方法。同时分析了技术面临的挑战及未来发展趋势,包括更高分辨率、人工智能辅助诊断和便携式设备的发展,为医学影像研究和临床诊断提供重要参考。

z2a3b4c5d的博客 277

报错:python扩展中的调试器不再支持小于3.7的python版本(debugpy)

python debugpy

weixin_44151034的博客 1万+

OpenHarness代码解读

Harness 是包裹在大模型之外、为其赋予完整执行能力的全套基础设施。模型负责提供智能与推理,Harness 则为模型提供感知、行动、记忆、工具与安全约束,使其从语言模型变成可自主完成复杂任务的实用智能体。我这里把向量数据库方案定义为:把对话片段、事件、偏好、工具结果等切成 memory chunks,做 embedding,存进向量库,查询时靠 ANN 相似度召回,再交给 LLM 读。AAAI 的综述类论文就明确指出,很多 LLM agent 的长期记忆就是这么做的。AAAI 期刊把文件系统方案。

qq_52053775的博客 187

Simulink仿真模块 -Scope

如果您将 Scope 模块放在具有锁定链接的库或者锁定的库中,当尝试打开示波器窗口时,Simulink 会显示错误。要显示某个库模块中的内部数据,请为库模块添加一个输出端口,然后将此端口连接到您模型中的 Scope 模块。当您在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。当在示波器内可视化多个基于帧的信号时,部分帧大小为 1 的信号采样可能不会显示。如果在仿真开始时波形视图关闭,则当在仿真后打开波形视图时,波形视图将显示附加的输入信号的仿真结果。

jk_101的博客 3790

VSCode调试python代码提示不支持 Debug Python 3.7

VScode调试python代码

aiaiaiali的博客 847

【测开求职】面试题:计算机网络 详细版整理

本篇文章是笔者为准备研究生复试和校招而写,因此主要针对问答,注重理解,而不在于细节计算。读者可以先查看上面的链接走一遍计算机网络的整体框架结构。其中,重点难点以及易混淆的知识点,笔者会用其他文章进行了详述,在知识点处贴好了链接,有需要的可以查阅。

vector的博客 5936

Python调试新手指南:从pdb到pdb++的无缝过渡

pdb++是Python调试器pdb的增强替代品,提供更丰富的功能和更友好的用户体验。对于Python开发者来说,掌握pdb++可以显著提升调试效率,轻松定位和解决代码中的问题。本文将带你从基础的pdb调试平滑过渡到使用pdb++,探索其强大功能和实用技巧。 ## 为什么选择pdb++? Python内置的pdb调试器虽然功能完整,但在用户体验和效率方面存在一些不足。pdb++作为pdb的增强

gitblog_00940的博客 584

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

别再只会print了!用Python内置的pdb调试器,5分钟搞定复杂Bug排查

本文介绍了Python内置的pdb调试器,帮助开发者高效排查复杂Bug。通过对比传统print调试法的局限性,详细讲解了pdb的核心命令和高级调试技巧,如条件断点、调用栈导航和事后调试。文章还提供了真实项目中的pdb工作流和最佳实践,助力开发者提升调试效率。

weixin_31714129的博客 278

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

pdb++源码解析:深入理解Python调试器的实现原理

pdb++作为Python调试器pdb的增强替代品,提供了更丰富的功能和更友好的用户体验。本文将深入剖析pdb++的源码结构与实现原理,帮助开发者理解其核心机制和扩展方式。 ## 核心架构设计:Pdb类的继承体系 pdb++的核心实现集中在[src/pdbpp.py](https://link.gitcode.com/i/6261e764c872a649abb526e9769e965e)文件中

gitblog_00393的博客 638

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Python 内置函数:breakpoint()

breakpoint() 是 Python 3.7 引入的调试便捷接口,默认调用 pdb.set_trace(),不依赖额外库,并且支持通过环境变量和 sys.breakpointhook 来定制调试行为。从 Python 3.7 开始,提供了更简洁的内置函数 breakpoint(),它可以在程序运行过程中直接触发调试器,方便排查问题。运行后,程序会在 breakpoint() 处停下,并进入调试器环境,可以交互式查看和修改变量。:会传递给实际调用的调试器函数,通常是 pdb.set_trace()

qq_41176800的博客 565

Python PDB调试实战:从入门到精通的命令指南

本文是Python PDB调试的实战指南,帮助开发者告别低效的打印调试法。文章详细介绍了PDB的两种启动方式、十大核心命令(如断点设置、单步执行、变量查看)以及处理循环、异常等复杂场景的进阶技巧,旨在提升调试效率,精准定位代码问题。

7up55的博客 618

Python调试不靠print:用pdb掌握程序运行时真相

调试(Debugging)是理解程序行为的核心能力,尤其在动态语言Python中,其解释执行机制让运行时状态可实时观测、变量可即查即改。pdb作为Python原生交互式调试器,本质是嵌入解释器的REPL探针,无需额外依赖即可实现断点控制、调用栈导航与表达式求值。它支撑从本地开发到服务器SSH、CI流水线乃至Jupyter Notebook等全场景调试需求,技术价值在于将‘黑盒执行’转化为‘透明可控’的过程。典型应用场景包括定位逻辑错误、分析第三方库行为、验证数据类型一致性及辅助异步代码排查。本文聚焦Debu

weixin_32430941的博客 250

Python调试技巧详解:掌握pdb提升代码排错能力

在Python开发过程中,调试是不可或缺的重要技能。本文将深入介绍Python内置的调试工具pdb(Python Debugger),帮助开发者快速定位和解决代码中的问题。无论你是刚入门的新手还是有一定经验的开发者,掌握这些调试技巧都能显著提升你的开发效率。 ## 什么是pdb pdb是Python标准库中内置的调试器,它提供了一个交互式的调试环境,允许开发者: - 逐行执行代码 - 查看变...

gitblog_00980的博客 562

Python 代码 Debug 的 10 个实用技巧

在本文中,我们探讨了识别代码或项目中的错误的各种方法和做法。无论你是初学者还是大佬级,这些技巧对于发现错误都非常有用。我们介绍了十种不同的技巧,每种技巧都用简单的类比来解释,以帮助你掌握基础知识。

具身机器人和通用AI 2753

Python | Debugger和pdb那点事

有读者问我,怎么发现Python的错误以及怎样解决。我们知道虽然入门级编程语言最好是C和Python,但是C和Python是有这本质的不同的,那就是C语言是编译型语言,而Python是解释型语言。编译型语言会在编译时报错,而解释型语言确实在解释到某一行时报错。上面这种属于语法错误,而语法错误之外还要一种语义错误,也就是我们常说的这段代码存在逻辑上的错误。明明没报错,却没有得到预期的结果。那么针对这...

dcnxkpguoa的博客 534

Python3-Trepan调试器指南

Python3-Trepan调试器指南 项目介绍 Python3-Trepan 是专为 Python 3 设计的类似于 GDB 的调试工具。它从基础彻底重写了 pdb,目标是满足对高质量调试器有需求的开发者。Trepan 提供了命令行界面(CLI)以及通过 TCP/IP 进行远程访问的接口。它强化了位置信息的精确度,支持没有源码的 Python 字节码调试,拥有源码语法高亮、命令自动补全、终端处理...

gitblog_00767的博客 773

Python调试工具链全解析:从pdb到PyCharm实战

调试是软件开发的核心环节,Python生态提供了从基础到高级的完整调试工具链。标准库中的pdb模块支持断点调试和变量检查,是命令行环境的首选工具。性能分析方面,cProfile和timeit模块可分别进行宏观和微观层面的耗时检测。在工程实践中,PyCharm等IDE集成了可视化调试功能,支持条件断点和远程调试。静态检查工具如Pyflakes和mypy能在编码阶段发现潜在问题。对于异步编程、内存泄漏等复杂场景,aioconsole、objgraph等专用工具提供了针对性解决方案。合理组合这些工具能显著提升调试

weixin_30435261的博客 329

Python PDB调试命令实战指南:从入门到精通

本文是Python PDB调试命令的实战指南,旨在帮助开发者从入门到精通。文章详细介绍了PDB的两种启动方式、核心命令分类(查看现场、移动探索、设置断点、执行杂项),并通过实战案例演示了如何高效定位和修复代码中的Bug。掌握PDB能让你告别低效的print调试,显著提升问题排查效率与代码理解深度。

ios99的博客 286

深入解析Microsoft PDB:Windows程序数据库格式完全指南

Microsoft PDB(Program Database)是Windows平台上至关重要的符号文件格式,为开发者和调试工具提供了丰富的调试信息。作为Windows程序调试的核心组件,PDB文件承载着源代码与可执行文件之间的桥梁作用。本文将为您全面解析这个神秘的PDB格式,帮助您深入理解其工作原理和应用场景。🎯 ## 什么是Microsoft PDB文件? PDB文件是Windows程序调

gitblog_00937的博客 858
上一篇: (日常搬砖)windows下如何查看并导出文件夹目录
下一篇: (日常搬砖)Linux常用指令记录(更新ing)
Philharmy_Wang
博客等级 码龄8年 10粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值