【问题标题】:Segfault on Qt signal emission [closed]Qt信号发射的段错误[关闭]
【发布时间】:2013-04-01 15:18:37
【问题描述】:

我有以下在发射时会出现段错误的函数。仅知道以下内容,哪些情况可能会导致此段错误?

功能

MyClass::EmitSignal() {
    QString param = SomeObject->GetHelloWorld();
    qDebug () << "param: " << param;
    emit SomeSignal (param);
    qDebug () << "Emitted SomeSignal";
}

信号原型

signals:
    void SomeSignal (const QString& someString);

输出

param: HelloWorld
Segmentation fault (core dumped)

【问题讨论】:

  • 显示接收信号的槽。
  • "只知道以下内容..." 这是一种不寻常的方式来表达您的问题。不想再显示了?
  • 您肯定已经在调试器中运行了代码,是吗?
  • @Roku,我在奇怪的情况下工作,不幸的是无法使用调试器。
  • 见鬼了,你有没有试过把信号原型改成void SomeSignal (QString);

标签: c++ qt segmentation-fault signals


【解决方案1】:

我犯了一个愚蠢的错误——其他人在周末连接到我的信号,当我更改 QString 的格式时,他们的代码出现了段错误。我应该检查一下新的插槽。

【讨论】:

    【解决方案2】:

    如果 SomeObject 等于 null 或无效,你肯定会得到一个段错误

    【讨论】:

    • 这里不是这样,因为他从中得到了“HelloWorld”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 1970-01-01
    相关资源
    最近更新 更多