coredumpy 使用教程

coredumpy 使用教程

coredumpy coredumpy saves your crash site for post-mortem debugging coredumpy 项目地址: https://gitcode.com/gh_mirrors/co/coredumpy

1. 项目介绍

coredumpy 是一个用于保存程序崩溃现场的工具,便于后续的故障排查和分析。它可以与 pytestunittest 等测试框架无缝集成,支持多种调试工具,如 VSCode 和 pdb,使得开发者能够轻松定位问题所在。

2. 项目快速启动

安装

首先,确保你已经安装了 Python。接下来,可以使用 pip 安装 coredumpy

pip install coredumpy

配置

在开始使用之前,你可能需要对 coredumpy 进行一些配置。创建一个名为 conf_coredumpy.py 的文件,并添加以下内容:

from coredumpy import config

# 设置默认的递归深度
config.default_recursion_depth = 10
# 设置转储超时时间
config.dump_timeout = 60
# 是否转储所有线程
config.dump_all_threads = True
# 是否隐藏匹配特定模式的字符串
config.hide_secret = True
# 设置密码模式
config.secret_patterns = [re.compile(r"[A-Za-z0-9]{32,1024}")]
# 是否隐藏环境变量中的字符串
config.hide_environ = True
# 设置环境变量过滤条件
config.environ_filter = lambda env: len(env) > 8

使用

与 pytest 集成

在运行 pytest 时,添加 --enable-coredumpy--coredumpy-dir 参数来启用 coredumpy 并指定转储目录:

pytest --enable-coredumpy --coredumpy-dir ./dumps
使用 coredumpy 运行脚本

在运行脚本时,使用 coredumpy run 命令。如果脚本中发生未处理的异常或测试失败,将生成转储:

coredumpy run my_script.py

或者指定转储目录:

coredumpy run my_script.py --directory ./dumps
手动转储当前帧堆栈

在代码中导入 coredumpy 并使用 dump 方法手动转储当前帧:

import coredumpy

# 转储调用者帧
coredumpy.dump()

# 指定特定帧转储
coredumpy.dump(frame)

# 设置搜索深度
coredumpy.dump(depth=2)

# 指定文件名保存转储
coredumpy.dump(path='coredumpy.dump')

# 使用函数生成文件名
coredumpy.dump(path=lambda: f"coredumpy_{time.time()}.dump")

# 指定转储目录
coredumpy.dump(directory='./dumps')

# 添加描述
coredumpy.dump(description="a random dump")

3. 应用案例和最佳实践

案例一:自动转储 pytest 异常

pytest 测试中,自动转储失败的测试案例,便于后续分析:

pytest --enable-coredumpy --coredumpy-dir ./dumps

案例二:调试多线程应用

coredumpy 支持多线程应用的转储。在多线程程序中,可以捕获到所有线程的状态,从而帮助开发者定位问题。

最佳实践

  • 在持续集成(CI)流程中使用 coredumpy,自动收集测试中的异常信息。
  • 对于复杂的应用,使用 coredumpy 的配置选项来优化转储文件的大小和内容。
  • 在开发环境中,利用 coredumpy 的实时转储功能,快速定位问题。

4. 典型生态项目

coredumpy 可以与多种开发工具和环境集成,以下是一些典型的生态项目:

  • VSCode: 通过 VSCode 插件,可以直接加载和查看转储文件。
  • pdb/ipdb: 支持使用pdb或ipdb调试转储文件。
  • GitHub Actions: 可以通过 GitHub Actions 自动上传转储文件,并与团队共享。

通过上述教程,开发者可以快速上手 coredumpy,提高故障排查的效率。

coredumpy coredumpy saves your crash site for post-mortem debugging coredumpy 项目地址: https://gitcode.com/gh_mirrors/co/coredumpy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云含荟Gilbert

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值