QTime->addSecs 导致分段错误

QTime->addSecs cause segmentation fault

本文关键字:分段 错误 addSecs QTime-      更新时间:2023-10-16

我正在编写简单的番茄工作法应用程序,它基本上是倒数计时器。现在,我已经有了倒计时工作,但奇怪的是,当我向我的类添加另一个属性(任意)时,我得到镇静错误错误

使用 gdb,问题应该在这里:

void Status::showPomodoroTime() {
    QTime time = pomodoroTime->addSecs(elapsed);
    activeTime->display(time.toString("mm:ss"));
}

其中 activeTime 是 QLCDNumber widget,elapsed 是 int。

更多背景:

void Status::createDefaultIntervals()
{
    pomodoroInterval = new QTime(0, 25);
    pomodoroBreak = new QTime(0, 5);
    pomodoroLongBreak = new QTime(0, 15);
}
void Status::run()
{
    if (pomodoroActive == STOP) {
        pomodoroTime = pomodoroInterval;
        showPomodoroTime();
    }
    pomodoroActive = RUN;
    updateStatusArea();
    timerTick();
}

CreateDefaultInterval肯定在showPomodoroTime之前运行。

让我烦恼的是,整个应用程序运行良好。就在我添加另一个属性时,它开始抛出 sedfault。

*.h 文件中的变量声明如何导致 *.cpp 中的段错误?

如果你想要更多的代码,我可以把它放在任何地方。只是不知道,什么地方足够执着。不想在这里发布它(大约 300 行代码)。

检查if(pomodoro!= NULL),然后执行addSecs()。

番茄钟时间可能未初始化或删除