/GS,
/sdl,
/analyze,
/fsanitize=address,
/W4
- Приложение, скомпилированное в версии 5.15 x32 MSVC 2019, работает без каких-либо проблем. Я также перешел на QT5.15 из QT5.14 x32 MSVC 2017 и не возникает никаких проблем.
- Приложение после перехода на QT6.9.3 x64 2022 случайным образом вызывает сбои.
- При использовании этих флагов проблема сбоев постоянна.
- Я использовал анализ CLazy и исправил все предложенные исправления (исправления для QT6) Проблемы семантики).
- Я скомпилировал все сторонние библиотеки с использованием MSVC 2022 x64, создал библиотеку x64 и использовал ее для своего приложения (подтвердил это, запустив exe через средство обхода зависимостей).
- Теперь я использую все эти флаги и исправляю все выдаваемые предупреждения (в процессе).
- Трассировка стека не выполняется. показывая точную суть вопроса. Но последовательное отображение ntdll.dll в трассировке стека (из-за этого я подозреваю, что сбой связан с изменением структуры памяти, которое произошло при переходе с 32 на 64 [может быть связано с контейнерами, указателями, приведением типов, изменением размера типа данных и т. д.]).
- QT6 также заставляет нас использовать C++17, а раньше мы использовали C++11.
Любая помощь по этому вопросу будет очень признательна. поскольку я застрял в этом уже более двух месяцев.**
Подробнее здесь: https://stackoverflow.com/questions/797 ... ausing-the