现象

使用makefile编译成功编译,但是在运行时出现
Segmentation fault (core dumped) 段错误,如下图所示:
在这里插入图片描述

尝试办法

1.让copilot找bug:
没有找到具体的问题,只指出了是指针访问越界以及未定义行为。指出了一个大概的方向

2.使用GBD查找问题:
每次都停在compared函数上,
在这里插入图片描述
或者我想打印输出的数组时stdio报错,
在这里插入图片描述

当我把它注释掉后没有出现问题。推测问题出现在输出的cpu或者gpu数组上。

3.自查代码逻辑,重点看输出的cpu或者gpu数组:
在这里插入图片描述
发现将dref的空间错误的申请在了gpu上,那么当cpu想去读取dref时就会出错。因为cpu无法直接去读取gpu内的数据。

修改方法

修改dref在cpu空间申请内存,然后重新编译运行:
在这里插入图片描述
成功输出正确的前缀和,问题解决!

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐