在有界面的操作系统上,可以使用pycharm进行pychon代码的调试,但是在只能使用terminal的Linux机器上怎么高效调试代码呢?答案就是使用pdb调试工具。初次使用pdb调试的同学,会觉得它和pycharm调试的感觉差太远了,很不方便。其实用习惯后,pdb是很好用的,以下是我的常用用法总结,基本上这些用法就覆盖了我Python开发工作的需要。

1、开启调试模式

python -m pdb xxx.py

2、设置断点

b 行号

3、查看断点

b

4、取消断点

cl 断点编号

5、跨文件设断点

比如说,要在 xxx/xxx/xxx.py 的第10行设置断点

可以这么做,开启调试模式后,执行:

import sys

sys.path.append('xxx.py所在目录的绝对路径')

b xxx.py:10

这样就跨文件设置好了断点

6、在任意文件的任意位置设置断点

在需要设置断点的py文件所在行,添加如下两行代码:

import pdb

pdb.set_trace()

直接python xxx.py运行代码,在执行到pdb.set_trace()处直接会进入debug模式

7、查看变量值

p(变量名)

print(变量名),有些变量不支持print

如果要查看一个复杂python对象,请查看 https://bbs.huaweicloud.com/blogs/140380 中的方法

8、单步执行

s

9、单行执行

n

10、跳出当前函数的执行

r

11、持续执行

c

点击这里,了解更多精彩内容

【华为云技术分享】使用pdb调试python代码的方法相关推荐

  1. 【华为云技术分享】实战案例丨代码优化:如何去除context中的warning?

    在一个java语言群里面,有人抛了这么一段代码出来,问题是出现了下下图中的warning,问有什么好的方法消除 这种强转都是因为类型链条断掉了,写入的时候擦除了类型,读出来的时候也就只能强转了,那个i ...

  2. 【华为云技术分享】三大前端技术(React,Vue,Angular)探密(下)

    [华为云技术分享]三大前端技术(React,Vue,Angular)探密(上) [Angular] Angular(通常被称为 "Angular 2+"或 "Angula ...

  3. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 3

    4. 微观层面 4.1 个体动机 在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行 ...

  4. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1

    前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...

  5. linux内核视频 网易,网易视频云技术分享:UML调试Linux内核

    原标题:网易视频云技术分享:UML调试Linux内核 网易视频云是网易倾力打造的一款基于云计算的分布式多媒体处理集群和专业音视频技术,为客户提供稳定流畅.低时延.高并发的视频直播.录制.存储.转码及点 ...

  6. 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读

    3月24日14:00-17:00,HDC.Cloud开发者沙龙系列云数据库专场直播线上开启,此次华为云数据库通过三场直播从NoSQL数据库新技术.数据库迁移.行业解决方案等方面对云端数据库进行深度解读 ...

  7. 【华为云技术分享】Python大神编程常用4大工具,你用过几个?

    摘要:Python是一种跨平台的编程语言,能够在所有主要的操作系统上,运行你编写的任何Python程序.今天介绍几款常见的工具:Python自带的解释器.文本编辑器(Geany.Sublime Tex ...

  8. 华为python有必要学吗_【华为云技术分享】这个 Python 库有必要好好学学

    这里看一个最基本的例子,这里给到一个 User 的 Class 定义,再给到一个 data 数据,像这样: 1 class User(object):2 def __init__(self, name ...

  9. 【华为云技术分享】Python 中的异常和错误

    [摘要] 异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 异常和错误 第一:程序中难免出现错误,而错误分成两种 1.语法错误(这种错误,根本过不了python解释器的语法检测, ...

最新文章

  1. C/C++左值性精髓(二)哪些表达式是左值,哪些是右值?----右值表达式
  2. TCP/IP详解--第十九章
  3. mongodb spring 超时时间_拥抱NoSQL--谈Spring Data MongoDB的简单使用
  4. python中能够处理的最大整数是_实例讲解Python中整数的最大值输出
  5. mysql binlog sql统计_mysql的binlog详解
  6. 数学建模matlab推荐,推荐数学建模matlab方法整理 - 图文
  7. node.js模块引擎
  8. Qt文档阅读笔记-QWindow的进一步认识
  9. JAVA读锁不使用效果一样_Java使用读写锁替代同步锁
  10. mysql 存储xml类型_(MariaDB)MySQL数据类型详解和存储机制
  11. Matlab 2020b安装教程
  12. 计算机开机b00t设置,电脑boot启动项设置的具体方法
  13. SWOT模板与方法论
  14. JavaWeb - 小米商城:用户注册
  15. 通过高德地图API(WEB端)获取中国所有省市(可扩展)的列表
  16. 危与机并存 保险业如何走好线上线下业务并举转型之路?
  17. 使用 VMware Server 在 Linux 上安装 Oracle RAC 10g
  18. Mybatis错误 Result Maps collection already contains value for xxx
  19. Ubuntu下tar命令使用详解 .tar解压、.tar压缩
  20. (第二章)OpGL超级宝典学习:创建我们第一个OpenGL程序,绘制一个点和三角形

热门文章

  1. es6 Class 的 new.target 属性
  2. goland创建一个不限长度的字节切片_Go语言3 : 切片
  3. sphinx 字符串转html,在Pycharm中获取Sphinx,以将我的文档字符串包含在生成的html中...
  4. 用java统计任一书名次数_Java入门第三季 借书系统源代码 加入了限制重输次数 欢迎指教交流...
  5. python0表示剪刀_简化Python代码(石头、纸张、剪刀)
  6. 谷歌浏览器安卓_冷知识!你知道安卓系统开始收费了吗?
  7. 在java代码中设置TextView文本内容可滚动
  8. 让Python输出更漂亮
  9. vue-cli构建的项目手动添加eslint配置
  10. Activity切换动画---点击哪里从哪放大