powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Посоветуйте удобный отладчик для Qt Creator
23 сообщений из 23, страница 1 из 1
Посоветуйте удобный отладчик для Qt Creator
    #39442829
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Qt Creator встроен Callgrind, который после отладки показывает что-то непонятное: я не вижу своего кода и время его выполнения. Вместо этого какие-то потроха вызываемых библиотек. Возможно беда в том, что для отзывчивости интерфейса я создал второй поток и результаты представляют работу обоих потоков. Как сделать отбор по потоку я так и не нашел.

Кто как решал этот вопрос?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39442885
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просмотрел все строки кода и выяснил, что представлена трассировка только первого потока.

Тогда подскажите, пожалуйста, как определить режим отладки в qt, чтобы в этом случае я не создавал потоки, а просто вызвал отлаживаемую функцию.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39442889
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не создавал дополнительных потоков а из основного потока вызвал отлаживаемую функцию с Callgrind. Получил абсолютно непонятные результаты.

Что за ад с отладкой творится?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444396
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

как бы это не совсем отладчик..
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444468
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Просто я все еще использую терминологию из 1с :) Там профайлер объединен с отладчиком и кстати очень удобный:




Хорошо виден свой код и время его выполнения.

Неужели в срЕдах разработки для С++ нет ничего подобного?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444489
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои глаза... НЕЕЕЕЕЕТ!!11
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444494
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
NekZМои глаза... НЕЕЕЕЕЕТ!!11

Что вас так встревожило, милейший?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444877
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLNekZМои глаза... НЕЕЕЕЕЕТ!!11

Что вас так встревожило, милейший?
1с - ясен хер
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444916
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLХорошо виден свой код и время его выполнения.
Неужели в срЕдах разработки для С++ нет ничего подобного?

Это и называется profiler. Он в С++ как правило отделен от отладчика.
Как правило, для профилирования нужно специальным образом собрать программу, и тогда её можно будет запускать под
профайлером (но не все профайлеры это требуют). Кроме того, обычно профайлеры для С/С++ фактически требуют отладочные символы (разновидность отладочной информации) для показа имён функций.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444958
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivЭто и называется profiler. Он в С++ как правило отделен от отладчика.
Как правило, для профилирования нужно специальным образом собрать программу, и тогда её можно будет запускать под
профайлером (но не все профайлеры это требуют). Кроме того, обычно профайлеры для С/С++ фактически требуют отладочные символы (разновидность отладочной информации) для показа имён функций.

Вы можете посоветовать мне определенную методику профилирования? Какой профайлер в каких ситуациях лучше использовать и какой геморрой от этого получаешь?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444960
Фотография NekZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL какой геморрой от этого получаешь?
Геморрой получаешь всегда и во всех смыслах, работая в этой области ;-)
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39444994
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLMasterZivЭто и называется profiler. Он в С++ как правило отделен от отладчика.
Как правило, для профилирования нужно специальным образом собрать программу, и тогда её можно будет запускать под
профайлером (но не все профайлеры это требуют). Кроме того, обычно профайлеры для С/С++ фактически требуют отладочные символы (разновидность отладочной информации) для показа имён функций.

Вы можете посоветовать мне определенную методику профилирования? Какой профайлер в каких ситуациях лучше использовать и какой геморрой от этого получаешь?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
void foo() {
    #ifdef PROFILE
    time_t t_start = time(0);
    #endif

   /// some useful code

    #ifdef PROFILE
    fprintf(profile_log, "foo(): %d\n", time(0)-t_start);
    #endif
}

Распихай подобный код по всем подозрительным функциям/блокам и абсолютно универсальный профайлер готов.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445012
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl,

Спасибо, но не думаю, что подобный подход сгодится в крупных проектах. У меня сейчас на руках примерно 150 страниц процедурного кода, который я переделываю в ОО код.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445081
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLWhite Owl,

Спасибо, но не думаю, что подобный подход сгодится в крупных проектах.В крупных проектах только такой подход и годится. По настоящему крупные проекты ни один профайлер не выдерживает. И с мнопоточностью у профайлеров (и у дебагеров) проблемы.
Зато печать отладочной информации в файлы работает всегда.

AlekseySQLУ меня сейчас на руках примерно 150 страниц процедурного кода, который я переделываю в ОО код.Глупости какие. Работает - не трожь. А 150 страниц это такие мелочи...
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445111
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL
Вы можете посоветовать мне определенную методику профилирования? Какой профайлер в каких ситуациях лучше использовать и какой геморрой от этого получаешь?

Нет, не могу, нет одного универсального метода.

На Linux могу посоветовать callgrind (медленно но точно) и OProfile (быстро и не требует инструментализации, но достаточно сложно ставить, и надо работать под root).
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445121
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZivНет, не могу, нет одного универсального метода.

На Linux могу посоветовать callgrind (медленно но точно) и OProfile (быстро и не требует инструментализации, но достаточно сложно ставить, и надо работать под root).

Так скриншоты от этого самого callgrind я и привел в теме: какие-то непонятные цифры напротив непонятных строк кода. Он может показать замеры МОЕГО кода?
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445153
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

у тебя скорее всего нет debug info.

Если у тетя GCC, проверь, чтобы стояло два флага :
-- у компилятора стоял -g
-- у линкера НЕ стоял -s

но это будет влиять только на ПОКАЗ функций, по самому профилированию у тебя будет все так же, а тут видно, что все у тебя тормозит не в твоем коде, а в коде MySQL client и просто висит на вводе (мышка).

Тебе для нормального профилированию нужно запустить какой-то режим работы программы, когда бы она именно считала, а не читала данные из бд или теребил бы мышью.

Если у тебя такого режима работы нет, для профилирования придется его специально изготовить. Чтобы ты запускал программу в особом режиме и она именно считала бы по каким-то заранее подгруженным данным. Можно грузить конечно и в этом погоне, но тогда нужно чтобы время просчета было бы существенно меньше времени загрузки. Можно для этого просчитать одно и то же несколько раз, скажем 10, загрузив один. Но учти, что valgrind - интерпретатор машинного кода, он считает все достаточно медленно. Поэтому твой просчет будет примерно раз в 10-100 медленное, чем в реальной жизни.

Конкретно по поддержке его в QTCreator я не знаю, если что, поставить можно KCacheGrind или просто смотреть руками.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445596
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

У меня в коде ТОЛЬКО перемалывание цифр. Никаких баз данных и опросов мышек нет и в помине. Так как я ее сделал программу однопоточной, то системный монитор показывает, что одно ядро всегда занято на 100%.

Насчет специфических ключей: в Qt есть три режима сборки "Выпуск", "Отладка" и "Профилирование". Разумеется для профайлинга я запускаюсь в режиме профилирование (Qt предупредит, что режим неоптимальный, если запуститься НЕ в режиме "Выпуск" или "Профилирование"). Думаю ребята из Qt должны были поставить все ключи сами раз у них специально разделено на три режима, чтобы защититься "от дурака".

Если указать ключ -g, то профилирование выдает ошибку: Unknown option -g
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39445894
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересная лекция по теме:
YouTube Video
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39446197
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQLЕсли указать ключ -g, то профилирование выдает ошибку: Unknown option -g

Да ёшки-матрёшки, КОМПИЛЯТОРУ это надо указывать,

CXX_COMPILE_FLAGS += -g

(что-то типа того)
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39446359
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv
Да ёшки-матрёшки, КОМПИЛЯТОРУ это надо указывать,

CXX_COMPILE_FLAGS += -g

(что-то типа того)

Тут: http://www.cyberforum.ru/post653738.html написано, что для добавление опций компилятора надо сделать:
Код: plaintext
Проекты -> Qmake или Make Подробнее -> поле дополнительные параметры.

Что я собственно и сделал. Куда вставлять вашу строку?
Код: plaintext
CXX_COMPILE_FLAGS += -g
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39446381
AlekseySQL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В pro- файл мистическую фразу прописывать пробовал.
...
Рейтинг: 0 / 0
Посоветуйте удобный отладчик для Qt Creator
    #39446929
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AlekseySQL,

http://doc.qt.io/qt-5/qmake-variable-reference.html
угадай какая переменная в .pro определяет флаги для С++ компилятора?
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Посоветуйте удобный отладчик для Qt Creator
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]