Russian Qt Forum

Qt => Qt-инструментарий => Тема начата: QtProger от Январь 01, 2010, 13:46



Название: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 01, 2010, 13:46
Здравствуйте.  :) При отладке с Qt Creator`ом возникает одно неудобство. Нажимаю клавишу F10, и бывает такое, что Creator начинает отлаживать процедуры Qt, вместо моих. Как это исправить ?


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: Dendy от Январь 01, 2010, 17:17
Может быть F11? Я обычно сразу же выхожу из такого метода по Ctrl+F11.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 01, 2010, 18:56
Может быть F11? Я обычно сразу же выхожу из такого метода по Ctrl+F11.

И с F10, и с F11 отладчик заходит в какие-то процедуры Qt. Чтобы выйти из них, надо много раз нажимать Shift+F11. Чертовски неудобно.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: Dendy от Январь 01, 2010, 19:55
Странно, по F10 заходить не должен, должен перепрыгивать. В какой именно метод Qt он заходит? Покажите пример.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 02, 2010, 00:17
Странно, по F10 заходить не должен, должен перепрыгивать. В какой именно метод Qt он заходит? Покажите пример.

Например вот этот слот, вызываемый при нажатии кнопки на форме. Отладчик заходит в какие-то процедуры после закрывающей фигурной скобки.

Код
C++ (Qt)
void Widget::click_button()
{
       st=POP3_CONNECTED;
       socket->connectToHost("pop.mail.ru", 110);
} //после этой скобки

Весь исходник программы во вложении. Можете посмотреть его, он небольшой. Приведенный выше код находится в файле widget.cpp на 20-ой строке


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: break от Январь 02, 2010, 01:44
какую систему используете - в Linux одна из не столь давних версий ядра - сильно конфликтовала с GDB


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 02, 2010, 10:17
какую систему используете - в Linux одна из не столь давних версий ядра - сильно конфликтовала с GDB

Виндовз ХР


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: break от Январь 02, 2010, 18:01
шоткаты назначены так?

F10 - Step Over
F11 - Step Into
F12 - Step Out


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: Dendy от Январь 02, 2010, 18:06
Заходит в Qt при перепрыгивании через socket->connectToHost() или уже после этого, при перепрыгивании через закрывающую скобку? Если последнее - то так и должно быть. Перепрыгивание через возврат из функции равносилен выходу их неё.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 02, 2010, 18:26
шоткаты назначены так?
F10 - Step Over
F11 - Step Into
F12 - Step Out

F10 - Step Over
F11 - Step Into
Shift+F11 - Step Out

Заходит в Qt при перепрыгивании через socket->connectToHost() или уже после этого, при перепрыгивании через закрывающую скобку?

При перепрыгивании через закрывающую скобку. Можно нажимать F10 или F11, без разницы, все равно отладчик заходит в какие-то процедуры Qt.

Если последнее - то так и должно быть. Перепрыгивание через возврат из функции равносилен выходу их неё.

Почему ? Ведь это очень неудобно. Вместо того, чтобы отлаживать свой код, мне приходится отлаживать десятки строк исходного кода Qt.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: Dendy от Январь 03, 2010, 00:36
Используйте Run To Line. Или соберите Qt без отладочных символов.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: QtProger от Январь 03, 2010, 11:24
Используйте Run To Line.

"Выполнить до строки" не работает правильно. "Перейти на строку" все блокирует.

Или соберите Qt без отладочных символов.

Как ?


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: Dendy от Январь 03, 2010, 11:31
Уберите опцию -g перед сборкой Qt в mkspecs/win32-g++/qmake.conf для переменной QMAKE_CFLAGS_DEBUG, а после сборки верните обратно.


Название: Re: Qt Creator заходит во все процедуры при отладке
Отправлено: b-s-a от Февраль 08, 2010, 18:48
Проще символы отладки удалить с помощью strip (входит в MinGW): strip --strip-unneeded <file>.dll