Это ошибка в анализаторе Qt Creator - PullRequest
1 голос
/ 12 мая 2019

При работе с некоторым кодом я испытал снижение производительности QT Creator. Фактически он запускает поток, который занимает 100% ЦП в бесконечном цикле: даже закрытие процесса IDE без его уничтожения становится невозможным. Это полностью воспроизводимо на моей машине. Перед отправкой сообщения об ошибке я хочу получить подтверждение от других пользователей и собрать некоторую статистику для версий QT Creator, ОС, компилятора, STL и т. Д. Код требует C ++ 11 и выше.

После некоторого исследования я сократил свой код до кратчайшего примера, который воспроизводит проблему (не смотрите на симантику кода, проблема в том, как IDE обрабатывает его):

#include <set>
int main() {
    std::set<int> s;
    auto iter = s.insert(1).first;
    iter->second;
    return 0;
}

Основные моменты:

  • авто важно
  • такое же поведение можно воспроизвести с помощью карты вместо набора
  • insert важен, поскольку он возвращает не простой итератор, а пару
  • Строка iter-> second является симметрично неверной, но это не важно (вы можете использовать std :: set , чтобы исправить ее). Проблема в том, что IDE падает после iter -> , что бы это ни значило.

Моя конфигурация: QT Creator 3.5.1 на основе Qt 5.5.1 (MSVC 2013, 32 бит); Windows 10.

1 Ответ

2 голосов
/ 12 мая 2019

Многое произошло с Qt Creator 3.5.Модель кода совершенно новая, основанная на Clang.Следовательно, я не могу воспроизвести вашу проблему с Qt Creator 4.9.(И да, старая модель кода имела несколько ограничений и ошибок.)

В общем, всегда проверяйте наличие последней поддерживаемой версии программного обеспечения перед подготовкой отчета об ошибке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...