【发布时间】:2018-06-06 04:30:57
【问题描述】:
在 imax6q 定制硬件设计上运行基于 Linux 的应用程序时,我遇到了以下分段错误。我使用 Linux GDB 回溯了核心转储,然后您可以看到这些核心转储。
我正在使用的内核 - Linux-boundary 4.1.15
Seg 故障核心转储 1
Program terminated with signal SIGSEGV, Segmentation fault.
#0 gcoTEXTURE_BindTextureEx (Texture=0x263c6c4, Target=Target@entry=0,
Sampler=1, Sampler@entry=0, Info=Info@entry=0x23f0708,
textureLayer=textureLayer@entry=0)
at gc_hal_user_texture.c:3804
3804 gc_hal_user_texture.c: No such file or directory.
Seg 故障核心转储 2
Program terminated with signal SIGSEGV, Segmentation fault.
#0 _SetFenceCtx (fence=0x5c30d6c, head=0x5c2ab74) at
gc_hal_user_hardware.c:5752
5752 gc_hal_user_hardware.c: No such file or directory.
1) 这些核心转储被定向到以下源文件。但是我在上面的 Linux 边界 4.1.15 内核版本中找不到这些文件。他们指的是什么?为了克服这个问题,您有什么建议?
gc_hal_user_texture.c
gc_hal_user_hardware.c
src/glcore/gc_es_draw.c:943
src/glcore/gc_es_api.c:399
2) 我可以在我的内核构建中找到一个名为 gc_hal_kernel_hardware.c 的文件。那么这是 gdb 回溯日志指出的文件吗?您对这种分段错误有任何想法吗?
【问题讨论】:
-
获取你在
gc_hal_kernel_hardware.c中找到的目录并直接在GDB 中的dir命令中使用它,如下所示:dir theDirectory -
运行 gdb
bt命令并查看堆栈中包含您编写的代码(或您可以修复的代码)的部分。