Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2021, 11:46   #1
hellknife
Новичок
Джуниор
 
Регистрация: 03.11.2021
Сообщений: 3
По умолчанию visual studio релиз приложения

есть проблема: запускаю приложение с конфигурацией решения дебаг, все отлично работает.
Если меняю конфигурацию решения на релиз, то работает некоректно, скажите пожалуйста, с чем это связанно?
hellknife вне форума Ответить с цитированием
Старый 04.11.2021, 12:02   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от hellknife Посмотреть сообщение
с чем это связанно
С багами в коде.

Где-то, что-то делается ТОЛЬКО в дебаг режиме.
Начните с проверок assert макросов, если они у вас есть. Аргумент этих макросов компилится только в дебаг режиме и если в этом макросе что-то меняется/вызывается в релиз версии срабатывать не будет.

Если где-то есть код, который является неопределенным поведением это тоже может ломать приложение. Если где-то, что-то работает некорректно определите где это место в коде и смотрите на код.

Еще, в дебаг режиме все переменные, которые не инициализируются явно, инициализируются служебными значениями, в релиз сборке этого нет, переменные будут содержать мусор.
waleri вне форума Ответить с цитированием
Старый 04.11.2021, 15:17   #3
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

точнее - не "переменные будут содержать мусор" , а "программа будет вести себя неопределённым образом"

Цитата:
Сообщение от hellknife Посмотреть сообщение
скажите пожалуйста, с чем это связанно
показывай код, так никто не угадает
Алексей1153 вне форума Ответить с цитированием
Старый 08.11.2021, 12:27   #4
ForenLi
Форумчанин
 
Регистрация: 02.06.2021
Сообщений: 515
По умолчанию

Цитата:
Сообщение от Алексей1153 Посмотреть сообщение
точнее - не "переменные будут содержать мусор" , а "программа будет вести себя неопределённым образом"
Нет. Именно будут содержать мусор. И если у вас в коде a+b, то выполнится именно +.
ForenLi вне форума Ответить с цитированием
Старый 08.11.2021, 19:25   #5
Алексей1153
фрилансер
Форумчанин
 
Регистрация: 11.10.2019
Сообщений: 960
По умолчанию

ForenLi, нет, будет неопределённое поведение. Может выполнится всё, что угодно, ожидаемое и неожидаемое

И если компилятор сумеет обнаружить UB, он волен вставить произвольный код на это место (обычно, конечно, это будет вовсе не форматирование диска, а какой-нибудь nop )
Алексей1153 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запуск приложения WinForms C# на другом компьютере без Visual Studio - C# eliasum C# (си шарп) 8 28.10.2017 18:33
ошибка при запуске приложения visual studio 2012 Onni Помощь студентам 2 19.05.2013 09:15
Создание сетевого приложения в Visual Studio JuniorProger Помощь студентам 3 19.09.2011 15:28
Сборка standalone приложения в Visual Studio 2008 Sparxy Visual C++ 2 06.11.2009 15:06