forked from qt-creator/qt-creator
The \i and \o commands were replaced with \li and \bold was replaced with \b in QDoc for Qt 5. The \input command was replaced with \include in the docs. Change-Id: I257d1bebb8ebc739ca20e0d29fcf0406ecb14534 Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
113 lines
3.9 KiB
Plaintext
113 lines
3.9 KiB
Plaintext
/****************************************************************************
|
|
**
|
|
** Copyright (c) 2013 Digia Plc and/or its subsidiary(-ies).
|
|
** Contact: http://www.qt-project.org/legal
|
|
**
|
|
** This file is part of Qt Creator
|
|
**
|
|
**
|
|
** GNU Free Documentation License
|
|
**
|
|
** Alternatively, this file may be used under the terms of the GNU Free
|
|
** Documentation License version 1.3 as published by the Free Software
|
|
** Foundation and appearing in the file included in the packaging of this
|
|
** file.
|
|
**
|
|
**
|
|
****************************************************************************/
|
|
|
|
// **********************************************************************
|
|
// NOTE: the sections are not ordered by their logical order to avoid
|
|
// reshuffling the file each time the index order changes (i.e., often).
|
|
// Run the fixnavi.pl script to adjust the links to the index order.
|
|
// **********************************************************************
|
|
|
|
/*!
|
|
\contentspage index.html
|
|
\previouspage creator-debugging-qml.html
|
|
\page creator-debugging-example.html
|
|
\nextpage creator-qml-debugging-example.html
|
|
|
|
\title Debugging a C++ Example Application
|
|
|
|
This section uses the \l{Creating a Qt Widget Based Application}{TextFinder}
|
|
example to illustrate how to debug Qt C++ applications in the \gui Debug
|
|
mode.
|
|
|
|
TextFinder reads a text file into QString and then displays it with
|
|
QTextEdit. To look at the TextFinder class and see the stored data, place
|
|
a breakpoint in textfinder.cpp, as follows:
|
|
|
|
\list 1
|
|
|
|
\li Click in between the line number and the window border on the line
|
|
where we change the cursor position to set a breakpoint.
|
|
|
|
\image qtcreator-setting-breakpoint1.png
|
|
|
|
\li Select \gui{Debug > Start Debugging > Start Debugging} or press
|
|
\key{F5}.
|
|
|
|
\li To view the breakpoint, click the \gui{Breakpoints} tab.
|
|
|
|
\image qtcreator-setting-breakpoint2.png
|
|
|
|
\li To remove a breakpoint, right-click it and select
|
|
\gui{Delete Breakpoint}.
|
|
|
|
|
|
\li To view the base classes and data members of the TextFinder class,
|
|
go to the \gui{Locals and Expressions} view.
|
|
|
|
\image qtcreator-watcher.png
|
|
|
|
\endlist
|
|
|
|
Modify the \c{on_findButton_clicked()} function to move back to
|
|
the start of the document and continue searching once the cursor hits the
|
|
end of the document. Add the following code snippet:
|
|
|
|
\code
|
|
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;
|
|
}
|
|
\endcode
|
|
|
|
If you compile and run the above code, however, the application does not
|
|
work correctly due to a logic error. To locate this logic error, step
|
|
through the code using the following buttons:
|
|
\inlineimage qtcreator-debug-button-stop.png
|
|
(\gui Stop),
|
|
\inlineimage qtcreator-debug-button-step-over.png
|
|
(\gui {Step Over}),
|
|
\inlineimage qtcreator-debug-button-step-into.png
|
|
(\gui {Step Into}), and
|
|
\inlineimage qtcreator-debug-button-step-out.png
|
|
(\gui {Step Out}).
|
|
|
|
*/
|