python是动态语言,编译器检查不到运行时的语法问题,而这些低级问题常常造成调试效率很低。之前在linux服务器上调试,都是通过print和异常报错来排查,简直弱爆了。python内置的pdb正是调试的利器。
我们先新建一个测试脚本:
touch debug.py
内容:
print "hello"
i = 0
for j in range(10):
i += j
print i
常用命令说明:
l #查看运行到哪行代码
n #单步运行,跳过函数
s #单步运行,可进入函数
p 变量 #查看变量值
b 行号 #断点设置到第几行
b #显示所有断点列表
cl 断点号 #删除某个断点
cl #删除所有断点
c #跳到下一个断点
r #return当前函数
exit #退出
更多的命令
http://docs.python.org/library/pdb.html
调试过程:
[co_ad2@localhost ~]$ python -m pdb debug.py
> /home/co_ad2/debug.py(1)<module>()
-> print "hello"
(Pdb) l
1 -> print "hello"
2
3 i = 0
4 for j in range(10):
5 i += j
6 print i
[EOF]
(Pdb) n
hello
> /home/co_ad2/debug.py(3)<module>()
-> i = 0
(Pdb) n
> /home/co_ad2/debug.py(4)<module>()
-> for j in range(10):
(Pdb) n
> /home/co_ad2/debug.py(5)<module>()
-> i += j
(Pdb) p i
0
(Pdb) p j
0
(Pdb) n
> /home/co_ad2/debug.py(4)<module>()
-> for j in range(10):
(Pdb) n
> /home/co_ad2/debug.py(5)<module>()
-> i += j
(Pdb) p i
0
(Pdb) p j
1
(Pdb) n
> /home/co_ad2/debug.py(4)<module>()
-> for j in range(10):
(Pdb) n
> /home/co_ad2/debug.py(5)<module>()
-> i += j
(Pdb) p i
1
(Pdb) p j
2
(Pdb) b 6
Breakpoint 1 at /home/co_ad2/debug.py:6
(Pdb) c
> /home/co_ad2/debug.py(6)<module>()
-> print i
(Pdb) p i
45
(Pdb) n
45
--Return--
(Pdb) exit
分享到:
相关推荐
在Linux环境下配置Python Web开发环境是一项重要的任务,它涉及到多个组件的集成与配置。这个过程主要包括以下几个关键步骤:安装Python,设置Python开发环境,安装Eclipse集成开发环境(IDE),安装PyDev插件,配置...
在Linux环境下,使用Python调用海康威视(Hikvision)的SDK包是一个常见的任务,这主要涉及到视频监控系统的远程访问和控制。海康威视作为全球领先的安防产品及解决方案提供商,提供了丰富的SDK供开发者集成到自己的...
Python编写的串口调试工具是一种基于Python编程语言的实用程序,用于与硬件设备进行串行通信。这个工具通常包括读取、写入数据、设置波特率、数据位、停止位和奇偶校验等功能,方便开发者进行串口设备的调试和测试。...
测试平台:ubuntu20+python2.7,windows+python3.9 理论上其他linux、windows和python版本也是支持的 ubuntu使用说明: 1. 使用前先安装必要模块:pip install pyusb,注意要安装到python2里面,如果默认安装到...
在Linux系统上,Python 3.7环境下安装和使用CPU版本的TensorFlow是一个常见的需求,特别是在没有GPU资源或者不涉及高性能计算的情况下。TensorFlow是一个强大的开源库,用于数据流图和机器学习,由Google Brain团队...
此文档为开发者提供了一套完整的安装和编译过程,涵盖了从环境配置、依赖安装、源代码获取到编译和调试的各个环节。文档详细到足以帮助开发者理解在Linux环境下如何进行PJLIB和PJSUA2的编译工作,并为可能遇到的问题...
本文将深入探讨基于Python3和PyQt5构建的串口调试助手`pyqt5_serial`,旨在为这些平台提供一个方便、直观的串口调试解决方案。 1. **Python3与PyQt5简介** Python3是一种高级编程语言,以其简洁易读的语法和丰富的...
Linux调试工具GDB,全称为GNU Debugger,是开源社区GNU Project的一个重要组成部分,主要用于C、C++、Fortran、Objective-C、Python等语言的程序调试。GDB在Linux系统中扮演着不可或缺的角色,帮助开发者诊断和修复...
这是一个我用于调试或分析工具概述,不一定是完整全面,如果你知道更好的工具,请在评论处标记。 日志 是的,的确,不得不强调足够的日志记录对应用程序是多么的重要。您应该记录重要的东西,如果你的记录足够好的话...
在Ubuntu这样的Linux系统中,通常使用g++编译C++代码,并通过-g选项添加调试信息。对于动态链接库,你需要使用-g和-fPIC选项编译,然后使用g++的`-shared`选项生成.so文件。在Python中,确保安装了必要的依赖库(如...
这个版本包含了针对Linux、Windows和macOS这三种主流操作系统的安装包,使得用户能够在不同平台上无缝地进行Python开发工作。 Python 3.10 的主要亮点包括对语法的改进、性能优化以及新特性的引入。以下是关于这些...
李枫-用于 Linux 内核调试的 Python1” 【描述】:“Python for Linux Kernel Debugging” 在这个主题中,李枫(Feng Li)探讨了如何利用Python来对Linux内核进行调试。他强调了在生产环境中实时解决内核和应用...
在提供的压缩包文件`python-3-11-0`中,包含了针对Linux、Windows和macOS三个主流操作系统的安装包。对于Linux用户,可能有`.tar.gz`或`.whl`格式的源代码包和二进制包;Windows用户将找到`.msi`安装程序;而macOS...
《GDB完全手册》是为Linux开发者准备的一份详尽指南,主要介绍的是GDB(GNU调试器),这是一个强大的开源调试工具,用于帮助程序员在Linux环境下调试C、C++和其他支持的语言编写的程序。通过GDB,开发者可以定位并...
Python是一种高级编程语言,特别适合新手入门学习,尤其在Linux系统编程中,它以其简洁的语法和强大的功能受到青睐。Python不仅比shell提供更丰富的结构支持大型程序的开发,同时比C语言提供了更多的错误检查,降低...
《Python.Unix和Linux系统管理指南》是一本深入探讨如何使用Python进行Unix和Linux系统管理的书籍。源代码是作者为了配合书中的讲解而提供的实际示例,旨在帮助读者更好地理解和应用书中介绍的知识。这份资源包含了...
在这个版本中,我们将探讨如何在Linux操作系统上安装Python 3.9.13以及该版本的一些关键特性。 首先,让我们来了解如何在Linux系统上安装Python 3.9.13。通常,Linux发行版会预装Python,但可能是较旧的版本。为了...
Python的一大优势是其跨平台性,使得这个串口通讯程序能在Windows、Linux和macOS等多种操作系统上运行。这意味着代码只需要编写一次,就能在不同系统上部署和使用。 总结来说,"dw_pyserial_work.zip"提供了一个...
在Linux系统中搭建Python开发环境是一项基础且重要的任务,它为程序员提供了运行和测试Python代码的平台。Python因其简洁明了的语法和丰富的库支持,已成为许多开发者的首选语言。以下将详细介绍如何在Linux环境下...
对于Python 3.8.5在Linux环境下的开发,开发者可以使用集成开发环境(IDE)如PyCharm或Visual Studio Code,它们提供代码补全、调试、版本控制等功能,极大地提升了开发效率。另外,Python的虚拟环境(venv或...