如何调试?

栏目: Python · 发布时间: 7年前

内容简介:单步跟踪是最常见的调试方法,不过我用的极少,因为效率低。往往也不需要用到这个。接下来我写的几种常见的调试方式, 主要针对Go和Python。按难度从容易到难,按效率从高到低。以下所有的调试的前提都是找到复现方式一般日志都可以设置级别,一般都会有例如

单步跟踪是最常见的调试方法,不过我用的极少,因为效率低。往往也不需要用到这个。接下来我写的几种常见的调试方式, 主要针对 Go 和Python。按难度从容易到难,按效率从高到低。

以下所有的调试的前提都是找到复现方式

  • 标准输出+日志

一般日志都可以设置级别,一般都会有例如 debug , info , error , fatal 等级别。将日志输出到标准输出,在找到 复现方式之后就可以看日志,然后定位问题。不过日志调试有一个问题,如果日志打印太多,容易把真正出问题的地方掩盖掉, 如果太少了,又不够详细导致不方便调试。给日志设置不同的级别更多的是一门手艺活,凭个人品味,经验。

print也算一种,不过显然logging是更科学的方式。

  • 打印调用栈

如果光看日志看不出来,可以用各种方式到异常点,看当前栈的情况,包括调用栈,变量等。比如 Python 中的异常,可以直接 logging.exception 打印,Go的panic也可以 runtime/debug 中的printstack打印出来。这种情况下一般配合异常收集 工具比如 sentry 等,可以方便快速的定位问题

  • review 代码

通常结合上面的两步一起来,我个人一般到第一二步就知道问题所在了。如果还是不行,就会重读一遍代码,在大脑里模拟 处理的走向。

  • 查看APM

如果有使用APM工具,可以到其dashboard看,从大局看问题所在,然后结合上面两种方式逐层细化下去。

  • 单步跟踪

单步跟踪很强大,但是通常用不上。普通的调试走单步,实在是有种大炮打蚊子的感觉。常见的调试 工具 是pdb(Python),gdb(Go)。


以上所述就是小编给大家介绍的《如何调试?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解

SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解

陈丰洲 / 电子工业出版社 / 2018-10 / 59.80元

SEM人员在职场打拼的过程中,会遇到一个又一个坑,《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》尝试站在一定的高度,将从业者从专员走向管理岗位过程中可能碰到的问题进行整理,不仅谈竞价推广,也谈基于SEM的营销体系。 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》包括11章内容,由浅入深地分享SEM的进阶过程。第1章是SEM概述,让读者对SEM有......一起来看看 《SEM修炼手册:百度竞价、信息流广告、数据分析与专题页策划实战详解》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器