我有一个Qt程序,它显示通过UDP接收的数据。 它工作正常大约30秒,但过了一段时间它会给出分段错误和崩溃。这30秒也没有修复。
我使用了调试器并得到了这个:
Program received signal SIGSEGV, Segmentation fault.
0x003c6fd4 in ?? () from /usr/lib/libQtGui.so.4
有人能告诉我错误的位置吗?
答案 0 :(得分:13)
这意味着您的程序已尝试访问不属于它的内存。基本上,你的代码中有一个包含无效值的指针 - 这个错误的一个常见原因是取消引用了一个NULL指针。
答案 1 :(得分:2)
您需要一个调试器(并确保您有包含调试信息的二进制文件) - 检查崩溃站点的堆栈跟踪。我几乎假设你自己的代码会出现在某个地方,这就是开始的要点。检查分配,缓冲区大小......
答案 2 :(得分:1)
确保已分配要为其分配数据的阵列。
我不断分配这个错误。
示例我使用过:
char* m_tempBuff;
*(int*) m_tempBuff = i;
Latter改为,并且有效:
char m_tempBuff[sizeof(int)];
*(int*) m_tempBuff = i;
祝你好运! :)