Сообщение 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-ы также выбрасывают исключения в случае нарушения ожиданий.
Pzz>>>Да и собственно, я не и делаю отдельных отладочных сборок, зачем мне тестировать и отлаживать дебугную сборку, если пользователю я поставляю релизную?
R>>Ну и зря. Отладочные сборки могут помочь обнаружить в программе разного рода UB: неинициализированные переменные, битые ссылки, заезды по памяти и пр.
Pzz>Мы, может, о чём-то разном говорим?
Pzz>Я подразумеваю под отладочной сборкой сборку с отладочной информацией, выключенной оптимизацйей и включенными проверками. А под релизной — без отладочной информации, с включенной оптимизацией и без проверок.
Всё верно, и я об этом же. В таких конфигурациях обычно генерируется дополнительный код, бросающий исключения при обнаружении проблем наподобие перечисленных. Ну и assert-ы также выбрасывают исключения в случае нарушения ожиданий.
Re[19]: C++ illegal instruction
Здравствуйте, Pzz, Вы писали:
Pzz>>>Да и собственно, я не и делаю отдельных отладочных сборок, зачем мне тестировать и отлаживать дебугную сборку, если пользователю я поставляю релизную?
R>>Ну и зря. Отладочные сборки могут помочь обнаружить в программе разного рода UB: неинициализированные переменные, битые ссылки, заезды по памяти и пр.
Pzz>Мы, может, о чём-то разном говорим?
Pzz>Я подразумеваю под отладочной сборкой сборку с отладочной информацией, выключенной оптимизацйей и включенными проверками. А под релизной — без отладочной информации, с включенной оптимизацией и без проверок.
Всё верно, и я об этом же. В таких конфигурациях обычно генерируется дополнительный код облегчающий отладку. Например, память помечается специальными значениями при окончании времени жизни объектов, бросаются исключения при обнаружении проблем наподобие перечисленных выше и т.п. Ну и assert-ы также выбрасывают исключения в случае нарушения ожиданий.
Pzz>>>Да и собственно, я не и делаю отдельных отладочных сборок, зачем мне тестировать и отлаживать дебугную сборку, если пользователю я поставляю релизную?
R>>Ну и зря. Отладочные сборки могут помочь обнаружить в программе разного рода UB: неинициализированные переменные, битые ссылки, заезды по памяти и пр.
Pzz>Мы, может, о чём-то разном говорим?
Pzz>Я подразумеваю под отладочной сборкой сборку с отладочной информацией, выключенной оптимизацйей и включенными проверками. А под релизной — без отладочной информации, с включенной оптимизацией и без проверок.
Всё верно, и я об этом же. В таких конфигурациях обычно генерируется дополнительный код облегчающий отладку. Например, память помечается специальными значениями при окончании времени жизни объектов, бросаются исключения при обнаружении проблем наподобие перечисленных выше и т.п. Ну и assert-ы также выбрасывают исключения в случае нарушения ожиданий.