Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Падение релиза, Созданный под MFC релиз падает 
V
    Опции темы
Paint_in_black
Дата 24.12.2007, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2007

Репутация: нет
Всего: нет



  В большом проекте под Visual Studio собираю релиз. При прохождении процедур загрузки программы на некоторых компах всё отлично, на других падает. Если запускать релиз из-под студии то всегда программа работает отлично, а просто из дирректории падает, все нужные dll вроде на месте. 
   Экспериментально замечено, что если добавлять или убирать какие-либо функции, т.е. менять код, релиз может вдруг заработать или начать неожиданно падать. Опять же замечено, путем создания файла, куда прописываются успешно завершённые этапы загрузки, что падение происходит в разных местах программы.  smile 
  Может кто-нибудь с подобным сталкивался? Что предпринимать? 
PM MAIL   Вверх
zkv
Дата 24.12.2007, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



PM MAIL   Вверх
Earnest
Дата 24.12.2007, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Однозначно - где-то в коде ошибка. В дополнение к приведенной статье могу посоветовать использовать для поиска ошибки OutputDebugString + DebugView (утилита Марка Руссиновича, www.sysinternals.com, сейчас это вроде под мелкософт ушло). Несмотря на имена, эта связа используется для отладки именно релиз-версии. Исходя из своего опыта могу предположить, что это неинициализированная переменная - эта гадость именно так чаще всего и проявляется (в среде и в дебаге работает, вне среды - как получится).


--------------------
...
PM   Вверх
Andrey44
Дата 24.12.2007, 15:27 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



А еще смотря от версии VS .
Если 8я версия, обязательно выдаст:

warning C4101: 'var' : unreferenced local variable


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
DigitSphinx
Дата 24.12.2007, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 28.4.2007
Где: Москва

Репутация: 1
Всего: 3



Andrey44, Не обязательно !
у меня было такое что не инициализирована переменная (точнее указатель в никуда), ВС 2005 ничего не говорил, в дебаге работало, в релизе падало !

Добавлено @ 15:48
zkv, Спасибо за ссылку ! smile 

Это сообщение отредактировал(а) DigitSphinx - 24.12.2007, 15:48


--------------------
Чтобы пробить стену лбом нужен или большой разбег, или много лбов.
(Альберт Эйнштейн)
Умен ты или глуп, велик ты или мал, не знаем мы, пока ты слова не сказал.
(Альберт Эйнштейн)
user posted image
PM MAIL ICQ   Вверх
Earnest
Дата 24.12.2007, 15:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(Andrey44 @  24.12.2007,  16:27 Найти цитируемый пост)
unreferenced

это "неиспользуемая" переменная, а вовсе не неинициализированная.
Конечно, в простых случаях компилятор предупреждает и о неинициализированных переменных (что-то вроде warning "переменная используется до инициализации"). Но это вряд ли автоматическая переменная (т.к. падает в разных местах), а, скорее, неинициализированный член класса (а об этом компилятор не предупреждает), а во-вторых, это может быть некорректно написанный класс. Например, я как-то нарвалась с элементарным MFC-шным CSize: была абсолютно уверена, что конструктор по-умолчанию инициализирует его нулями. Щас!  


--------------------
...
PM   Вверх
Paint_in_black
Дата 24.12.2007, 16:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2007

Репутация: нет
Всего: нет



Смущает больше всего то, что где-то программа запускается, где-то нет. Пробовал влиять на ход загрузки (где происходит падение - это можно сделать редактируя ini-файл) в результате программа может упасть на том же месте, при этом уже успешно его миновав пару-тройку раз (в ходе загрузки функция вызывается неоднократно для разных классов)...  smile 
PM MAIL   Вверх
Andrey44
Дата 24.12.2007, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



Да, извиняюсь не то написал.
Выдает другое

warning C4700: uninitialized local variable 'var' used
 smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Earnest
Дата 24.12.2007, 16:54 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(Paint_in_black @  24.12.2007,  17:12 Найти цитируемый пост)
Смущает больше всего то, что где-то программа запускается
 Совершенно нормальное поведение для глючной программы...  smile Не пытайся понять логику падений, а ищи ошибку в коде.
Если падает при запуске, то круг подозреваемых сужается...


--------------------
...
PM   Вверх
Lotrex
Дата 27.12.2007, 09:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 95
Регистрация: 9.2.2006
Где: Казань

Репутация: 2
Всего: 3



Не знаю, имеет ли смысл мой совет в твоем случае. Если это возможно, попытайся написать тест для каждого из классов в отдельности (ежели они у тебя не сильно связаны), и для каждого из тестов прогнать release-версию...  Занятие муторное, но ходить по дизассембленной программе в отладчике  - занятие, имхо, не лучше.
PM MAIL ICQ   Вверх
archimed7592
Дата 27.12.2007, 16:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Paint_in_black, до выполнения main дело доходит?

Andrey44, прям всегда? Или на всех hello-world'ах?


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Paint_in_black
Дата 27.12.2007, 17:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2007

Репутация: нет
Всего: нет



Уважаемые коллеги! Всем спасибо за советы, с проблемой справился. Профайлер показал неинициализированную переменную, которая сходу использовалась в цикле как верхний предел, теперь вроде работает  smile  !    smile

Добавлено через 1 минуту и 32 секунды
 smile 
PM MAIL   Вверх
Andrey44
Дата 27.12.2007, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



archimed7592, 
Цитата

Andrey44, прям всегда? Или на всех hello-world'ах? 


Если, честно, то не понял вопроса smile 


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
archimed7592
Дата 27.12.2007, 19:18 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Архимед
****


Профиль
Группа: Завсегдатай
Сообщений: 2531
Регистрация: 12.6.2004
Где: Moscow

Репутация: 58
Всего: 93



Цитата(Andrey44 @  27.12.2007,  18:32 Найти цитируемый пост)
Если, честно, то не понял вопроса smile  

Есть туева хуча случаев, когда студия будет молчать как партизан. Студия рапортует только о примитивных случаях уровня "hello world".


--------------------
If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas.
© George Bernard Shaw
PM Jabber   Вверх
Andrey44
Дата 28.12.2007, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1501
Регистрация: 4.12.2006
Где: На работе

Репутация: 2
Всего: 26



 smile 
Понятно. Спасибо за информацию. Теперь буду знать.
Хотя при объявлении локальной переменной и не присвоив ей никакого значения студия предупреждает.
А вот если я не проинициализирую в конструкторе класса какую-нибудь переменную член класса,
компилятор спокойно все это скушает и будет молчать.


--------------------
????? ??, ??????? ?????.  smile 
PM MAIL WWW ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.