Мне очень трудно обновить наш старый проект C ++ Builder 10.2 до 10.2.3 (мы используем 32-битный компилятор Clang на 64-битном ПК).
Установка 10.2.3 прошла нормально (на чистом ПК с Windows 10), - проект компилируется и связывается - все довольны.
Но при запуске приложения в отладчике я вижу, что указатель this
для MainForm (довольно большой по историческим причинам объект) внезапно превращается в мусор при вызове одного вызова метода (при вызове одного из его собственные методы - сразу после завершения конструктора), что приводит к критическому отказу.
Я попытался закомментировать __fastcall
соглашение о вызовах для конкретного метода, а затем отладчик идет немного дальше, но затем падает при следующем вызове метода, используя __fastcall
из-за this
повреждения указателя (мы есть 1000+ методов с __fastcall
, поэтому комментировать их все не вариант).
Кто-нибудь знает, что происходит?
Может быть, новый переключатель компилятора Clang?
Проблема с большими объектами?
Я также пытался создать совершенно новый проект с нуля в 10.2.3 - но без удачи - происходит то же самое странное.