**Я пытаюсь перейти с QT5.15 x32bit MSVC 2019 на QT6.9.3 x64bit MSVC 2022; Но мое приложение выходит из строя во время выполнения и вызывает проблему повреждения HEAP. Я запустил анализ CLazy и также применил рекомендованные исправления. Теперь я добавил нижеуказанные флаги для решения этой проблемы. Я хотел подтвердить, верны ли шаги, которые я выполняю в процессе миграции.
/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.
Любая помощь по этому вопросу будет очень признательна. поскольку я застрял в этом уже более двух месяцев.**
**Я пытаюсь перейти с QT5.15 x32bit MSVC 2019 на QT6.9.3 x64bit MSVC 2022; Но мое приложение выходит из строя во время выполнения и вызывает проблему повреждения HEAP. Я запустил анализ CLazy и также применил рекомендованные исправления. Теперь я добавил нижеуказанные флаги для решения этой проблемы. Я хотел подтвердить, верны ли шаги, которые я выполняю в процессе миграции. /GS, /sdl, /analyze, /fsanitize=address, /W4 [list] [*]Приложение, скомпилированное в версии 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. Любая помощь по этому вопросу будет очень признательна. поскольку я застрял в этом уже более двух месяцев.** [/list]