【问题标题】:Segmentation fault (core dumped) in Qt5 applicationQt5 应用程序中的分段错误(核心转储)
【发布时间】:2013-11-25 17:52:32
【问题描述】:

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

Segmentation fault (core dumped)

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

【问题讨论】:

  • 在 Linux 上?检查 /var/log/syslog 看它是否在那里报告。
  • 在 ubuntu 13.10 64 位上
  • 使用调试信息构建,并在调试器中运行。
  • 用命令行 gdb 试试

标签: qt qt5


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2019-01-14
    • 1970-01-01
    • 1970-01-01
    • 2015-06-25
    • 2021-06-03
    相关资源
    最近更新 更多