程序在运行时崩溃,但在调试时则不会崩溃

时间:2013-11-16 20:45:30

标签: c++ qt

void MainWindow::save()
{
    const int currentIndex = tabWidget->currentIndex();
    if( currentIndex == -1 )
        return;

    QString filepath = m_fileList.at( currentIndex )->filepath();

    if( filepath.isEmpty() )
    {
        QString filters = tr("All files(*.*);;Textfiles(*.txt)");
        filepath = QFileDialog::getOpenFileName( this, tr("Save file"), QDir::homePath() );

        if( filepath.isEmpty() )
            return;
    }

    QFile file( filepath );
    if( !file.open( QIODevice::WriteOnly | QIODevice::Text ) )
        return;

    QTextStream str( &file );
    str << m_fileList.at( currentIndex )->textEdit()->toPlainText();

    file.close();

}

以上代码仅在调试时有效!如果我运行它,它会崩溃。但是,当我使用调试器并完成每个步骤时,它不会。当我通过终端启动程序并让它崩溃时,它会显示Segmentation fault。我评论了很多东西并运行它,看看它到底崩溃了。显然,当我调用QFileDialog时,它会崩溃。它从未在调试模式下显示。

怎么了?我在linux机器上(Ubuntu)

0 个答案:

没有答案