Миграция с 32-битного приложения QT5.15 на 64-битное приложение QT6.9.3 приводит к сбою приложенияC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Миграция с 32-битного приложения QT5.15 на 64-битное приложение QT6.9.3 приводит к сбою приложения

Сообщение Anonymous »

**Я пытаюсь перейти с 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.
    Любая помощь по этому вопросу будет очень признательна. поскольку я застрял в этом уже более двух месяцев.**


Подробнее здесь: https://stackoverflow.com/questions/797 ... ausing-the
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»