Точка останова: прерывается при возникновении исключения c — почему так медленно?

#c #qt #qt-creator #breakpoints #msvc12

#c #qt #qt-creator #точки останова #msvc12

Вопрос:

С использованием Qt Creator, Qt 5.3, VC12 (VS2013)

Когда я устанавливаю точку останова «Прерывание при возникновении исключения c » в Qt creator, мое приложение становится чрезвычайно медленным. Может быть, на 5-10 медленнее, чем запуск с другими точками останова, такими как «Имя файла и номер строки»

Прерывается при возникновении исключения

Почему отладка с такой точкой останова происходит так медленно? Просто любопытно..

— Редактировать —

Что касается комментария CR, сталкиваюсь ли я с аномалией в своей системе?

Комментарии:

1. Вероятно, потому, что отладчик вставляет дополнительные инструкции для проверки исключений повсюду.

2. Я тоже включил это, но ощутимой разницы в производительности нет.

3. Приятно знать, что в моем сценарии это воспроизводимо. Система Win7, 32-разрядная. Дело доходит до того, что в тот момент, когда я удаляю такую точку останова, производительность возвращается к нормальной. Примечательно: отключение не помогает, только удаление. CR, какова ваша настройка, WIN или что-то еще?

4. По моему опыту, отладка с QtCreator в Windows с VS происходит очень медленно, по сравнению с Linux или OS X. Я подозреваю, что это потому, что он все время пытается загрузить символы с сайта Microsoft, но я не уверен. Вы пробовали использовать компилятор MinGW?

5. Потенциально вы можете ускорить компиляцию MinGW, добавив -jX в свои параметры make, где X обычно представляет собой количество ядер на вашем компьютере.

Ответ №1:

Это проблема с предоставляемым Microsoft отладчиком, который вы загрузили для использования с Qt Creator. Отладчик, который использует Qt Creator, не является отладчиком visual Studio, поскольку последний IIRC не может быть легко использован извне. К сожалению, я не думаю, что Qt Creator ничего не мог бы сделать для улучшения ситуации, за исключением использования несуществующего порта, скажем, lldb.