Информация об изменениях

Сообщение Re[3]: Странный баг Delphi XE8 от 25.08.2023 20:50

Изменено 25.08.2023 20:58 swame

Re[3]: Странный баг Delphi XE8
Здравствуйте, Khimik, Вы писали:

K>Здравствуйте, rudzuk, Вы писали:


K>>> Я что-то поменял в коде, и мой проект перестал запускаться. Стала срабатывать ошибка range check error в коде, где такой ошибки не может быть.


R>>Код-то покажешь?


K>Какой смысл? Код то нормальный, в Win32 версии всё запускается. Сообщение об ошибке возникает там где всё чисто. А весь код я же не могу показать.


То что в Win32 оно работает, не доказывает что нет ошибок.
Помню при переходах на новые версии Windows в программах обнаруживалиcь баги работы с памятью,
которые на более ранних версиях Windows не проявлялись исчезающе редко, а начинали проявляться из за более строго контроля памяти при обновлении Windows.
Возможно ошибки работы с памятью, при это м ошибка может быть совсем в другом месте, чем выпадает в дебаггере.
У тебя же накручено каких-то велосипедов работы с объектами.
Частая ошибка такого рода неправильно приведении типов черех скобочки а не оператор as. Неправильное приведение переменных.
Я бы в перую очередь прогнал программу с FAstMM c включенной опцией CherckHeapForCorruption, начиная с 32 разрядного режима
Re[3]: Странный баг Delphi XE8
Здравствуйте, Khimik, Вы писали:

K>Здравствуйте, rudzuk, Вы писали:


K>>> Я что-то поменял в коде, и мой проект перестал запускаться. Стала срабатывать ошибка range check error в коде, где такой ошибки не может быть.


R>>Код-то покажешь?


K>Какой смысл? Код то нормальный, в Win32 версии всё запускается. Сообщение об ошибке возникает там где всё чисто. А весь код я же не могу показать.


То что в Win32 оно работает, не доказывает что нет ошибок.
Помню при переходах на новые версии Windows в программах обнаруживалиcь баги работы с памятью,
которые на более ранних версиях Windows не проявлялись исчезающе редко, а начинали проявляться из за более строго контроля памяти при обновлении Windows.
Возможно ошибки работы с памятью, при это м ошибка может быть совсем в другом месте, чем выпадает в дебаггере.
У тебя же накручено каких-то велосипедов работы с объектами.
Частая ошибка такого рода неправильно приведении типов черех скобочки а не оператор as. Неправильное приведение типов переменных (особенно уучитывая 64 разрядную версию).
Я бы в перую очередь прогнал программу с FAstMM c включенной опцией CherckHeapForCorruption, начиная с 32 разрядного режима

K>Заметил ещё одну странность: на одном из модулей (возможно это как раз проблемный модуль, с которого всё пошло) после нажатия F9 возникает синий breakpoint на самой верхней строчке (где название модуля). Убираю этот breakpoint, нажимаю F9 — снова он появляется.


У меня тоже бывает незванный breakpoint, на первой строке проекта, не знаю отчего это. НО с предыдущим багом вряд ли связан.