教程:C++调试
本教程使用TextFinder示例来说明如何在调试模式下调试 Qt C++应用程序。
TextFinder读取文本文件到QString,然后使用QTextEdit显示它。要查看TextFinder类和存储的数据
- 在textfinder.cpp中,在行号和窗口边界之间的行上点击,设置断点。
- 转到调试 > 开始调试 > 开始启动项目调试或按F5。
- 要查看关于断点的信息,请转到断点视图。
- 要删除断点,右键单击它并选择删除断点。
- 要查看TextFinder类的基类和数据成员,请转到局部变量视图。
修改on_findButton_clicked()
函数,以便将光标移回文档开头,并在光标到达文档末尾时继续搜索。添加以下代码片段
void TextFinder::on_findButton_clicked() { QString searchString = ui->lineEdit->text(); QTextDocument *document = ui->textEdit->document(); QTextCursor cursor = ui->textEdit->textCursor(); cursor = document->find(searchString, cursor, QTextDocument::FindWholeWords); ui->textEdit->setTextCursor(cursor); bool found = cursor.isNull(); if (!found && previouslyFound) { int ret = QMessageBox::question(this, tr("End of Document"), tr("I have reached the end of the document. Would you like " "me to start searching from the beginning of the document?"), QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes); if (ret == QMessageBox::Yes) { cursor = document->find(searchString, QTextDocument::FindWholeWords); ui->textEdit->setTextCursor(cursor); } else return; } previouslyFound = found; }
然而,如果您编译并运行上述代码,则由于逻辑错误,应用程序无法正确工作。为了定位这个逻辑错误,使用以下按钮逐步执行代码: (停止调试器), (步过), (步入), 和 (步出)。
另请参阅教程:Qt Widgets应用程序,调试,调试器和调试器。
©2024 本文档中包含的 Qt 公司有限责任公司的文档贡献均为各自所有者的版权。提供的文档在此处是根据自由软件基金会发布的、版本为 1.3 的GNU 自由文档许可证的条款进行许可。Qt 及其相关标志是芬兰及/或其他国家/地区的 Qt 公司商标。所有其他商标均为各自所有者的财产。