PDB调试Python程序
2023-09-11 14:19:20 时间
pdb是python内置的调试工具, 它可以在终端中调试Python程序, 这允许pdb在很多无法安装IDE的服务器上使用.
虽然远程调试使用广泛, 但在必要的时候(比如难以在本地搭建运行环境)pdb仍然是一个便利的选择.
我们可以在python源代码中设置断点:
import pdb
def func():
for i in range(100):
pdb.set_trace() # set breakpoint
print(i)
随后执行源文件, pdb.set_trace()
会如同一个断点阻塞当前Python进程进入pdb终端.或者使用python -m pdb test.py
指令从第一行开始调试进入.
test.py(5)<module>()
-> print(i)
(Pdb)
pdb终端会显示文件名, 行号,当前文件, 下一行指令等信息.并等待用户指令:
-
c
/continue
: 继续执行, 直至进程完成或被断点阻塞 -
n
/next
: 执行下一条指令, 若遇函数直接得到函数返回值, 不进入 -
s
/step
: 步进执行下一条指令,若遇函数则进入执行 -
r
/return
: 跳出当前函数, 返回调用栈的上一层 -
b
/breakpoint [<line_num>]
: 在指定行(下一条指令处)设置一个断点:b
,b 5
-
a
/args
: 显示当前函数的参数 -
q
/exit
: 中止进程执行 -
l
/list
: 显示下一条指令所在的代码块 -
pp <obj_name>
: 显示某个对象的值 -
disable / enable <line_num>
: 禁用/启用某行上的断点 -
condition [<line_num>] <condition>
: 在指定行上设置条件断点.如:condition 5 i==3
-
!<expr>
: 动态执行一条语句, 可以是赋值等指令:!i=2
,!1==1
.
参考资料:
相关文章
- Python之——python-nmap的安装与常用方法说明
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
- Python自带又好用的代码调试工具Pdb学习笔记
- 【Python】socket 编程初探
- 第三百六十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作
- [Python] String Formatting
- Python 终端下的TUI开发,whiptail 的 Python 封装
- 【Python实战】python中含有中文字符无法运行
- python中的%s%是什么意思
- [转] python程序的调试方法
- 如何调试Python程序(pdb使用手册)
- Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
- 使用 VS Code 远程调试 Python 程序
- Python:更改默认启动的python程序及其对应的安装包路径(更改pip的默认安装包的路径)图文教程之详细攻略
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Button的command/Label/PhotoImage/封装为类)
- Python之tkinter:动态演示调用python库的tkinter带你进入GUI世界(Scale/Scale的Command)
- Python语言学习之文件夹那些事:python和文件夹的使用方法之详细攻略
- Python之ffmpeg-python:ffmpeg-python库的简介、安装、使用方法之详细攻略
- Python 实现个人博客系统(附零基础python学习资料)
- 〖Python自动化办公篇⑳〗 - python实现邮件自动化 - 发送html邮件和带附件的邮件
- Python MySQL删除表
- 从零开始学python | 什么是Python JSON?
- 从零开始学习python | 实例讲解如何制作Python模式程序
- 【强烈推荐】这两款 Python 代码调试工具真的很棒
- Python基于PyTorch实现BP神经网络ANN回归模型项目实战
- Python编程:shelve模块-持久化python数据
- Python数据分析与展示:DataFrame类型简单操作-9
- Python编程:查看python语法中的关键字keyword
- 写网络爬虫天然就是择Python而用 python 网络爬虫3
- python里使用正则表达式的后向搜索肯定模式
- 用Python做数据分析之数据筛选及分类汇总
- python类的__setattr__()怎么用
- 工控系统安全 - 工控ISF(Industrial exploit Framework)是一个基于Python的类似msf的工控系统漏洞利用框架
- 【openvino-python】使用pycharm调试openvino架构的python程序
- Python可视化数据分析01、python环境搭建
- 〖Python自动化办公篇⑲〗 - python实现邮件自动化 - 邮件发送