Мое приложение QT прекрасно работает на моем компьютере с Windows 11 уже почти два года с тех пор, как я взял на себя его разработку. Недавно произошло следующее: когда я запускаю программу в режиме отладки, она сначала прерывает код дизассемблирования со следующим всплывающим сообщением триггера исключения с функцией-членом .show():
The inferior stopped because it triggered an exception.
Stopped in thread 0 by: Exception at 0x772a1fdf, code: 0xc0000005: read access violation at: 0xbaadf00c, flags=0x0 (first chance).
Дизассемблер останавливается здесь:

Запуск кода после срабатывания этого исключения запускает программу, но иногда программа снова прерывается в дизассемблере и аварийно завершает работу.
Я компилирую с MSVC, и я пробовал несколько разных компиляторов, пробовал версии QT 5.2.0, 5.14.1 и 5.15.2, и все они выдают одну и ту же ошибку в Windows 11. Я также пробовал разные комбинации пакетов Windows SDK, и все дают один и тот же результат. Я пробовал инструменты VS Build 2015, 2017 и 2019 без изменений.
В итоге я установил Windows 10 на другой компьютер и запустил установку с помощью QT 5.14.1 и компилятора MSVC 15.9. 28307.2094 и Windows 10 SDK 10.0.17763.132, где он работает как положено и без проблем.
Настройка QT на моем компьютере с Win 11:

Окно «О программе» моего QT Creator:

Тестирование приложения QT по умолчанию
Это меня очень смутило. Я обратился за помощью на форумы QT здесь и обнаружил, что получаю ту же ошибку при тестировании примера приложения QT по умолчанию. Я использую QT Creator в качестве инструмента сборки и отладки. Это не проблема с кодом. Я создал новый проект QT с базовым кодом, предоставленным по умолчанию, и это выдает ту же ошибку:
#include "mainwindow.h"
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
Пример тестирования приложений в примерах QT
Как и в моей программе, «сбой» происходит при вызове функции .show(). называется. В данном случае это mainWin.Show(). При переходе/входе в него дизассемблер не работает:

а это трассировка стека:

Работа в режиме выпуска
- Начать с отладки = тот же сбой
- Начать без отладки = нет сбоев
< ul>
[*]То же, что и выше
Похоже, что проблема в отладке.
И вот эти кнопки я имею в виду, когда говорю «начните с отладки»:
[img]https:/ /i.stack.imgur.com/H2VYu.png[/img]
Что я пробовал
- Полная переустановка QT
- Полная переустановка всех инструментов разработки и компиляторов Visual Studio.
- Выбор «Игнорировать нарушения прав доступа при первом изменении» в настройках CDB – при этом исключается проблема с перехватом исключения при запуске отладки, однако ввод точки останова во время выполнения приводит к тому, что приложение снова прерывает код дизассемблера:
0x772c8c00 int 3
0x772c8c01 ret
0x772c8c02 int 3
Подробнее здесь: https://stackoverflow.com/questions/782 ... cation-and