Linux下使用命令行调试Python程序

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
简介: Linux下使用命令行调试Python程序

Python提供类似于C++ gdb的调试工具pdb,我们可以在Linux下使用pdb在命令行下进行Python程序的调试。
官方参考网站:
Python2: https://docs.python.org/2/library/pdb.html
Python3: https://docs.python.org/3/library/pdb.html

一般地,我们可以使用如下的方式进入调试(比如我们要调试的源文件为hello.py):

  1. 在命令行启动目标程序,加上-m参数。
    python -m pdb hello.py
    这样程序会自动停在第一行,等待你进行调试,如下图。我们可以使用调试命令进行调试,和使用IED调试类似。
    pdb调试
  2. 在Python交互环境中启用调试
    我们可以在源文件要进入调试的的地方,加入如下代码:
import pdb  
pdb.set_trace()

截屏2023-09-08 18.06.49.png

然后可以在交互式环境中自动进入pdb调试模式,调试方法和上面类似。

下面说一下常用的调试命令(具体详细的资料参见官网文档):
断点相关命令:
设置断点: (Pdb) b 8 #断点设置该文件的第8行(b即break的首字母)
显示所有断点:(Pdb) b #b命令,没有参数,显示所有断点
删除断点:(Pdb) cl 2 #删除第2个断点 (clear的首字母)

Step Over:(Pdb) n #单步执行,next的首字母
Step Into:(Pdb) s #step的首字母
Setp Return:(Pdb) r #return的首字母
Resume:(Pdb) c #continue的首字母
Run to Line:(Pdb) j 10 #运行到地10行,jump的首字母

(Pdb) p param #查看当前param变量值
(Pdb) l #查看运行到某处代码
(Pdb) a #查看全部栈内变量

(Pdb) h #帮助,help的首字母
(Pdb) q #退出,quit的首字母

目录
相关文章
|
4天前
|
存储 UED Python
Python编程入门:打造你的第一个程序
【9月更文挑战第36天】在数字时代的浪潮中,编程已成为一项基础技能。本文以Python语言为例,通过构建一个简单的计算器程序,引领初学者步入编程的世界。从基础语法到实现功能,我们将一步步解锁编程的乐趣。无论你是编程新手还是想扩展知识边界的爱好者,这篇文章都将为你打开一扇通往编程世界的大门。让我们开始这段旅程,探索代码的魅力吧!
|
1天前
|
小程序 iOS开发 MacOS
将Python代码转化为可执行的程序
将Python代码转化为可执行的程序
11 1
|
14天前
|
jenkins 持续交付 Docker
docker之自定义制作镜像(python程序)
docker之自定义制作镜像(python程序)
|
13天前
|
Python
Python 编程入门:打造你的第一个程序
【9月更文挑战第27天】编程,就像是在数字世界里绘画。想象一下,你手中的键盘是画笔,屏幕是画布,而代码则是你的颜料。这篇文章将带你走进编程的世界,学习如何使用 Python 这门语言来创建你的第一个程序。我们将从基础的语法开始,逐步深入到条件判断和循环结构,最终完成一个简单的猜数字游戏。无论你是否有编程经验,这里的内容都将为你打开一扇新的大门。
|
14天前
|
Java Linux Python
Linux环境下 代码java调用python出错
Linux环境下 代码java调用python出错
28 3
|
13天前
|
Windows Python
python获取windows机子上运行的程序名称
python获取windows机子上运行的程序名称
|
1天前
|
安全 网络协议 IDE
使用Python编写网络扫描程序
使用Python编写网络扫描程序
|
14天前
|
Linux Python
linux 封装 python
linux 封装 python
12 0
|
14天前
|
Linux Python
Linux 下封装 Python
Linux 下封装 Python
13 0
|
15天前
|
Linux Python
Linux之centos安装clinkhouse以及python如何连接
Linux之centos安装clinkhouse以及python如何连接