Atlas200DK segment fault错误定位
当我们使用自动运行脚本或者mindstudio运行应用程序发生失败时,如果日志中看不到任何应用相关的错误打印时,我们可以使用下列方法进一步定位:
1. ssh登录开发板;
2. 进入应用部署目录。开发板上应用都部署在/home/HwHiAiUser/HIAI_PROJECTS/ascend_workspace(C30版本)或者/home/HwHiAiUser/HIAI_PROJECTS/ascend_workspace/workspace_mind_studio (C32版本)目录下,根据应用程序的名称,有对应的部署子目录。例如人脸识别:
/home/HwHiAiUser/HIAI_PROJECTS/ascend_workspace/ascend_workspace/facialrecognitionapp/out/
注意:C32版本目录稍有不同,是以应用程序名(facialrecognitionapp)加一个随机值作为部署目录的
3. 手动执行应用程序。在项目部署目录下,以ascend开头(C32版本是以workspace开头)的文件,即程序运行bin文件,直接执行该文件,例如:
./ascend_facialrecognitionapp
如果执行终止并且打印segment fault,说明程序发生段错误。
段错误定位:
1. 配置开发板联网;
2. 在开发板上执行sudo apt-get install gdb安装gdb 工具;
3. 开发板上输入命令ulimit -c unlimited打开coredump;
4. 开发板上手动执行发生异常的样例程序bin文件,例如:
./ascend_facialrecognitionapp
再次发生异常的时候会生成一个名为core文件
5. 执行命令 gdb ascend_objectdetection core打开core文件;
6. 输入 bt命令即可查看异常时的调用栈,然后根据调用栈分析代码找到引起异常的原因。
- 点赞
- 收藏
- 关注作者
评论(0)