Files
qt-creator/doc/src/debugger/creator-debugger-example.qdoc
Leena Miettinen 419c6de735 Doc: replace deprecated QDoc commands
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>
2013-02-06 09:44:18 +01:00

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}).
*/