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

Сообщение Re[19]: C++ illegal instruction от 20.08.2025 18:48

Изменено 20.08.2025 18:50 rg45

Re[19]: C++ illegal instruction
Здравствуйте, Pzz, Вы писали:

Pzz>>>Да и собственно, я не и делаю отдельных отладочных сборок, зачем мне тестировать и отлаживать дебугную сборку, если пользователю я поставляю релизную?


R>>Ну и зря. Отладочные сборки могут помочь обнаружить в программе разного рода UB: неинициализированные переменные, битые ссылки, заезды по памяти и пр.


Pzz>Мы, может, о чём-то разном говорим?


Pzz>Я подразумеваю под отладочной сборкой сборку с отладочной информацией, выключенной оптимизацйей и включенными проверками. А под релизной — без отладочной информации, с включенной оптимизацией и без проверок.


Всё верно, и я об этом же. В таких конфигурациях обычно генерируется дополнительный код, бросающий исключения при обнаружении проблем наподобие перечисленных. Ну и assert-ы также выбрасывают исключения в случае нарушения ожиданий.
Re[19]: C++ illegal instruction
Здравствуйте, Pzz, Вы писали:

Pzz>>>Да и собственно, я не и делаю отдельных отладочных сборок, зачем мне тестировать и отлаживать дебугную сборку, если пользователю я поставляю релизную?


R>>Ну и зря. Отладочные сборки могут помочь обнаружить в программе разного рода UB: неинициализированные переменные, битые ссылки, заезды по памяти и пр.


Pzz>Мы, может, о чём-то разном говорим?


Pzz>Я подразумеваю под отладочной сборкой сборку с отладочной информацией, выключенной оптимизацйей и включенными проверками. А под релизной — без отладочной информации, с включенной оптимизацией и без проверок.


Всё верно, и я об этом же. В таких конфигурациях обычно генерируется дополнительный код облегчающий отладку. Например, память помечается специальными значениями при окончании времени жизни объектов, бросаются исключения при обнаружении проблем наподобие перечисленных выше и т.п. Ну и assert-ы также выбрасывают исключения в случае нарушения ожиданий.