我在多线程环境中运行程序,但在某些时候它失败了。当我用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个选项可以解决此错误。可能是导致此错误的原因。它在编码或系统中的错误?或访问某些数据时出错?
答案 0 :(得分:5)
分段错误是一种运行时错误,通常是由于引用了无效指针。通常,无效指针从未被初始化,但有时它会重用旧指针或写入已分配内存块的末尾(例如超过字符串结尾)。
答案 1 :(得分:0)
这可能意味着您的node
变量为NULL
或已损坏。在调试器中运行你的程序,从崩溃之前的某个时间点开始直到它,看看你搞砸了它的位置。或者使用Purify或Insure ++等自动化工具之一为您追踪它。