Qt5应用程序中的分段错误(核心转储)

时间:2013-11-25 17:52:33

标签: qt qt5

我有一个在qtcreator中运行良好的Qt5应用程序,但是如果我尝试通过终端创建的可执行文件运行我得到

Segmentation fault (core dumped)

我在Qt中尝试过调试模式,但没有错误。

1 个答案:

答案 0 :(得分:6)

如果程序在调试器外部运行时崩溃,但在调试器内部运行时不会崩溃,则可能表明您使用的是未初始化的数据。更具体地说,是一个未初始化的指针。

调试器通常会清除所有数据,包括局部变量。这意味着,例如在调试器中运行时,指针将为NULL。但是如果你没有初始化一些局部变量,那么当它在调试器之外运行时它的内容将是不确定的,而你对NULL的检查会说“这不是NULL,请继续”,你将引用这个未初始化的指针并输入未定义行为的领域。

您需要遍历所有局部变量,尤其是指针,并确保在使用它们之前对其进行初始化。