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