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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.05.2012, 17:42   #1
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
Восклицание режимы Debug & Release в #C

Собственно столкнулся со странной проблемой.
Пишу я на Си калькулятор многофункциональный достаточно, работающий с выражениями, функциями и т.д.
Вроде бы все написано, все модули отлично работают, НО когда я отправил Экзешник (релизный) знакомому, дабы тот потестил - у него на выходе были одни нули, что меня несказанно удивило, потому что у меня все работало..
Решил я свой релиз тестить и вправду нашел пару отклонений и у меня возникло два вопроса, даже 3:

1) Мой релиз иногда считал выражение, а иногда нет, например
ln(ln(ln(2e100))) иногда посчитает это выражение, а иногда споткнется.
(У меня есть модуль, проверяющий на ошибки и будет ненулевой код возврата)
В дебаге, конечно, косяков не было.
В чем может быть причина?

2) Второй мой друг отозвался о релизе аналогичным образом. Почему у меня релиз работает, пусть и с небольшими косяками, а у других нет?
(пишем мыло, отправлю экзешник)
Дебаг версия, конечно, у них работает.

3) Как можно дебажить в релизе?
(по шагам не получится - значения нельзя отследить обычным образом)

Вопросы приветствуются.
p.s Утечек памяти не зафиксировано (пользовался crtdump)

Последний раз редактировалось Elloriane; 06.05.2012 в 18:33.
Elloriane вне форума Ответить с цитированием
Старый 06.05.2012, 22:27   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,708
По умолчанию

Цитата:
В дебаге, конечно, косяков не было.
В чем может быть причина?
Вот почему прогерам на первых занятиях не вдалбливают, что релиз и дебаг в большинстве случаев работаю поразному, используют разные либы, код генерится разный, в дебаге неинициализированные переменные обнуляются ...

Цитата:
2) Второй мой друг отозвался о релизе аналогичным образом. Почему у меня релиз работает, пусть и с небольшими косяками, а у других нет?
Версии крт либ бывают разные, а в них вполне возможны отличия в работе некоторых функций.

Цитата:
3) Как можно дебажить в релизе?
(по шагам не получится - значения нельзя отследить обычным образом)
По шагам получается, но уже на более низком уровне. Доп. проверки, отладочный вывод, ...
p51x вне форума Ответить с цитированием
Старый 06.05.2012, 23:17   #3
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Elloriane

Почему у меня релиз работает, пусть и с небольшими косяками, а у других нет?
В чем может быть причина?


причина в том, что твой код - косячный, а Release не прощает ошибок.

3) Как можно дебажить в релизе?

не доводить до отладки в Release
Debug + ассерты + лоджинг + тестинг = формула выживания.
Rififi вне форума Ответить с цитированием
Старый 06.05.2012, 23:21   #4
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
Вот почему прогерам на первых занятиях не вдалбливают, что релиз и дебаг в большинстве случаев работаю поразному, используют разные либы, код генерится разный, в дебаге неинициализированные переменные обнуляются ...
Я уже смог догадаться уже про разную работу этих режимов)
С переменными вроде проблем, нет, но поясните - я правильно понял, что неинициализированной переменной просто присваивается ноль?

Разные библиотеки?
Я вроде использую все стандартное

Код:
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <string.h>
#include <crtdbg.h>
Или я не так вас понял?
Elloriane вне форума Ответить с цитированием
Старый 06.05.2012, 23:23   #5
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Rififi Посмотреть сообщение
Elloriane

Почему у меня релиз работает, пусть и с небольшими косяками, а у других нет?
В чем может быть причина?


причина в том, что твой код - косячный, а Release не прощает ошибок.

3) Как можно дебажить в релизе?

не доводить до отладки в Release
Debug + ассерты + лоджинг + тестинг = формула выживания.
Видимо косячный , придется что-то делать, просто проблема что у меня на ноутбуке и на пс релиз работает.
Elloriane вне форума Ответить с цитированием
Старый 06.05.2012, 23:27   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Я вроде использую все стандартное
в хидерах лишь описание, сам код то не там.

и ТС, так у вас какой ЯП то?
C# это другое.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.05.2012, 23:41   #7
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
в хидерах лишь описание, сам код то не там.

и ТС, так у вас какой ЯП то?
C# это другое.
Я помнится ставил 10 студию, потом удалил лишь студию и установил 8, может библиотеки 10 остались?
Я не очень понял вашу фразу:
и ТС, так у вас какой ЯП то?
Elloriane вне форума Ответить с цитированием
Старый 06.05.2012, 23:44   #8
onewho
Форумчанин
 
Регистрация: 29.09.2010
Сообщений: 636
По умолчанию

Код-то большой? может выложишь?
onewho вне форума Ответить с цитированием
Старый 06.05.2012, 23:45   #9
Elloriane
Пользователь
 
Регистрация: 19.02.2012
Сообщений: 60
По умолчанию

Цитата:
Сообщение от onewho Посмотреть сообщение
Код-то большой? может выложишь?
это же калькулятор со всеми функциями и проверками на дурака, там 4 ресурсных файла, 1 главный, 1 хэдер, стоит выкладывать?
я думаю там будет 700+ строк
Elloriane вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать так, чтобы в Debug и Release использовались разные ддл'ки? TwiX Visual C++ 7 08.11.2011 10:51
Текстовые режимы. NikaAutumn Помощь студентам 0 07.06.2011 11:50
Чем отличается режим Debug от Release в Microsoft Visual Studio 2008? Levsha100 Свободное общение 6 06.12.2009 22:29
TForm & TImage & PNG & Прозрачность delphi_beginner Общие вопросы Delphi 7 19.09.2009 08:46
Visual Studio 2008, проблемы с Release и Debug evgenrpo Win Api 7 22.06.2009 04:53