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

发布时间 2023-12-18 10:48:37作者: DECHIN

技术背景

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

解决方案

在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