这是 elifiner/pydump 的fork/优化版本, 主要优化点有:
- 支持在任何地方保存
Python traceback
,而不是只在异常发生的时候 - 优化代码结构, 去除冗余代码
- 修复其在3.10+版本中的bug
- 支持更多的pdb命令
- 提供了一个方便用来调试的命令行工具
- 支持服务器远程调试(remote pdb)
pydumpling可以在代码的任何位置中,将当前Python程序的traceback写到一个文件中,可以稍后在Python调试器中加载它。目前pydump支持很多兼容PDB api的调试器(pdbpp, udb, ipdb)
为什么会有Pydump?
- 我们在日常代码编写中,通常都会用
try ... except ...
去捕获程序中出现的异常,但是我们真的知道这些异常出现的原因吗? - 当你的项目在线上运行时,突然出现了不符合预期的异常导致进程退出,你应该怎样去复现当时的异常现场?
- 日志中没有足够的信息帮助我们去准确定位线上问题?
- 如果我们能够把线上的异常现场保存下来,然后通过调试器去恢复当时的异常堆栈,我们可以看到这个异常的整条调用链路以及链路上的堆栈变量,就如同你在本地断点捕获到了这个异常一样。
安装方法
Python版本支持:>=3.7
pip install -i pydumpling
评论