程序接收信号SIGSEGV,分段故障

时间:2013-06-07 06:49:49

标签: c++ c linux multithreading unix

我在多线程环境中运行程序,但在某些时候它失败了。当我用gdb尝试它而不是显示以下错误。

程序收到信号SIGSEGV,分段错误。

  

[切换到线程0x7fff677b700(LWP 2777)] 0x00007ffff7aa42b9 in   process_incomplete_rows(resultset = 0x507950)at c / mgmt.c:479 479   c / mgmt.c:没有这样的文件或目录。

mgmt.c文件就在那里,这段代码适用于某些选项,但有2或3个选项可以解决此错误。可能是导致此错误的原因。它在编码或系统中的错误?或访问某些数据时出错?

2 个答案:

答案 0 :(得分:5)

分段错误是一种运行时错误,通常是由于引用了无效指针。通常,无效指针从未被初始化,但有时它会重用旧指针或写入已分配内存块的末尾(例如超过字符串结尾)。

答案 1 :(得分:0)

这可能意味着您的node变量为NULL或已损坏。在调试器中运行你的程序,从崩溃之前的某个时间点开始直到它,看看你搞砸了它的位置。或者使用Purify或Insure ++等自动化工具之一为您追踪它。