Python定位错误:段错误 (核心已转储)

文章讲述了在Python编程中遇到段错误(核心已转储)的常见报错,介绍了如何使用faulthandler库获取更详细的错误信息,以定位到numbaCUDA代码中的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

技术背景

在各种编程语言中都有可能会遇到这样一个报错:“段错误 (核心已转储)”。显然是编写代码的过程中有哪里出现了问题,但是这个报错除了这几个字以外没有任何的信息,我们甚至不知道是哪一行的代码出现了这个问题。

解决方案

在python中可以引用一个faulthandler的函数,就可以显示更加具体的报错信息,便于定位。

import faulthandler
faulthandler.enable()

在加入上述代码之后,运行输出结果变成:

Fatal Python error: Segmentation fault

Current thread 0x00007f526a015740 (most recent call first):
  File "/home/dechin/anaconda3/envs/mindsponge/lib/python3.9/site-packages/numba/cuda/cudadrv/driver.py", line 330 in safe_cuda_api_call
  File "/home/dechin/anaconda3/envs/mindsponge/lib/python3.9/site-packages/numba/cuda/cudadrv/driver.py", line 2567 in launch_kernel
  File "/home/dechin/anaconda3/envs/mindsponge/lib/python3.9/site-packages/numba/cuda/dispatcher.py", line 329 in launch
  File "/home/dechin/anaconda3/envs/mindsponge/lib/python3.9/site-packages/numba/cuda/dispatcher.py", line 677 in call
  File "/home/dechin/anaconda3/envs/mindsponge/lib/python3.9/site-packages/numba/cuda/dispatcher.py", line 541 in __call__
  File "/home/dechin/projects/gitee/dechin/mindsponge/tests/benchmark/bond.py", line 69 in regular_bond_energy
  File "/home/dechin/projects/gitee/dechin/mindsponge/tests/benchmark/bond.py", line 130 in <module>
段错误 (核心已转储)

这样依赖,我们就找到了出现问题的代码位置,可以针对性的进行修复。

版权声明

本文首发链接为:https://www.cnblogs.com/dechinphy/p/faulthandler.html

作者ID:DechinPhy

更多原著文章:https://www.cnblogs.com/dechinphy/

请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值