WindForest

WindForest

0个粉丝

3

问答

0

专栏

0

资料

WindForest  发布于  2020-06-28 12:59:35
采纳率 0%
3个问答
2913

Segmentation fault原因请问有遇到我这种情况的么

 
使用Hi3516EV200只进行H264编码,程序和音频无关,且未运行音频相关函数。
程序每次采集3秒定长视频编码存入一个链表形式的缓冲区内,再由另一个线程从缓冲区中取出。
这一过程中会极低概率触发Segmentation fault,使用gdb调试输出信息如下:
[code]Program received signal SIGSEGV, Segmentation fault.
0xb6f2d478 in free () from /lib/libc.so.0
(gdb) bt
#0  0xb6f2d478 in free () from /lib/libc.so.0
#1  0x0003e09c in MPI_SysUnRegisterBinder ()
#2  0x00032cd0 in MPI_AO_Exit ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) [/code]

这其中出现了两个函数MPI_SysUnRegisterBinder 和MPI_AO_Exit ,可是我程序中没有使用过这两个函数,在MPP4.0参考手册中也没有对这两个函数的说明,这是怎么回事呢?
我来回答
回答2个
时间排序
认可量排序

WindForest

0个粉丝

3

问答

0

专栏

0

资料

WindForest 2020-06-28 13:09:24
认可0
[code]Program received signal SIGSEGV, Segmentation fault.
0x0003dfc8 in MPI_SysUnRegisterBinder ()
(gdb) bt
#0  0x0003dfc8 in MPI_SysUnRegisterBinder ()
#1  0x00030558 in MPI_ADEC_Exit ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
(gdb) [/code]

gdb多次捕获到的信息,段错误位置竟然不一样。
我程序是每次指令线程给编码线程(编码线程为主线程)一个指令之后,编码线程初始化MPP并进行定长编码,把码流缓存到缓冲区,然后退出MPP等待下一次指令这样子,kangdb的信息是在退出MPP的时候跑飞了???

WindForest

0个粉丝

3

问答

0

专栏

0

资料

WindForest 2020-06-28 19:55:13
认可0
结贴,码流包地址超界访问导致。
果然是低级错误呢...我现在的心情如何表示呢?大概是配合着我头像那个表情在心底喊出:啊!!!!!这样子..
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
相关问答
无更多相似问答 去提问
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区