什么是SIGSEGV,Qt中的分段错误

时间:2010-03-16 12:18:42

标签: qt segmentation-fault

我有一个Qt程序,它显示通过UDP接收的数据。 它工作正常大约30秒,但过了一段时间它会给出分段错误和崩溃。这30秒也没有修复。

我使用了调试器并得到了这个:

Program received signal SIGSEGV, Segmentation fault.
0x003c6fd4 in ?? () from /usr/lib/libQtGui.so.4

有人能告诉我错误的位置吗?

3 个答案:

答案 0 :(得分:13)

这意味着您的程序已尝试访问不属于它的内存。基本上,你的代码中有一个包含无效值的指针 - 这个错误的一个常见原因是取消引用了一个NULL指针。

答案 1 :(得分:2)

您需要一个调试器(并确保您有包含调试信息的二进制文件) - 检查崩溃站点的堆栈跟踪。我几乎假设你自己的代码会出现在某个地方,这就是开始的要点。检查分配,缓冲区大小......

答案 2 :(得分:1)

确保已分配要为其分配数据的阵列。

我不断分配这个错误。

示例我使用过:

char* m_tempBuff;
*(int*) m_tempBuff = i;

Latter改为,并且有效:

char m_tempBuff[sizeof(int)];
*(int*) m_tempBuff = i;

祝你好运! :)