Переключение на Главную Страницу Страницы: 1 [2] 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Утечка памяти при наследовании!!! (число прочтений - 19181 )
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #15 - 27. Июня 2006 :: 12:26
Печать  
Я уже думал на тему тестов на утечку памяти - ничего не придумал.  Печаль

Зато можно писать тесты на вызов деструктора.  Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #16 - 27. Июня 2006 :: 12:27
Печать  
Ага, я и говорил именно о тестах по вызову деструкторов, в т.ч. и по порядку их вызова.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #17 - 27. Июня 2006 :: 13:51
Печать  
Для тестирования порядка вызова определенных процедур предлагаю выполнить следующее в конфе тестирования 1С++:

1) Создать спец. класс "КонтрольИсполнения", у которого два метода
- ДобавитьВызов(СигнатураТестаИлиЕгоНазвание, ТекстВызоваИлиНазваниеМетодаВызова );
- ПолучитьСписокВызова(СигнатураТестаИлиЕгоНазвание);


2) Поместить экземпляр этого класса в глобальник как глКонтрольИсполнения

3) В нужных местах юнит-тестов или в необходимых/используемых классах вставить соответствующий вызов
глКонтрольИсполнения.ДобавитьВызов(ИмяТеста, "Деструктор")
Для проверки правильности вызова использовать список, полученный вызовом глКонтрольИсполнения.ПолучитьСписокВызова(ИмяТеста)
И в конце теста анализировать этот список на предмет правильности.

Что скажете?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #18 - 27. Июня 2006 :: 19:23
Печать  
ADirks писал(а) 27. Июня 2006 :: 10:30:
У меня такое чувство, что объекты вообще не удаляются из памяти. По крайней мере всё что принадлежит базовому классу. А у меня в каждой визуальной форме создаётся как минимум 1 объект. Но обычно от 3 до 5. Так что проблема для меня весьма неприятная.

Память смотрю Process Explorer'ом от SysInternals.  Но такое пожирательство и невооруженным глазом видно, оно на всей системе отражается.

10 минут подождал - память не освобождается.

Подтверждаю, потеря памяти в чистом виде в CRT Heap на подсчете ссылок.
Отлично ловится, кстати, методом Система::Память(1).
« Последняя редакция: 27. Июня 2006 :: 20:54 - kms »  

De quelle planète es-tu?
Наверх
 
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #19 - 28. Июня 2006 :: 03:53
Печать  
artbear
Ничего не понял. По-моему слишком сложно.

Проверка порядка вызова методов отлично описана в первоисточниках с примерами. Может быть не мудрить и сделать так же?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #20 - 28. Июня 2006 :: 04:22
Печать  
sedmin писал(а) 28. Июня 2006 :: 03:53:
Проверка порядка вызова методов отлично описана в первоисточниках с примерами. Может быть не мудрить и сделать так же?

В каких первоисточниках? И где примеры?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
sedmin
1c++ developer
Отсутствует


I Hate Fat YaBB 2!

Сообщений: 862
Зарегистрирован: 24. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #21 - 28. Июня 2006 :: 04:58
Печать  
Кент Бек.
Экстремальное программирование. Разработка через тестирование.
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #22 - 28. Июня 2006 :: 05:05
Печать  
Такой книги нету Печаль
Не отказался бы от электронного варианта Улыбка
И приведи, плиз, пример по работе с порядком вызова.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #23 - 28. Июня 2006 :: 05:32
Печать  
Нашел книгу в электронном виде
http://rapidshare.de/files/7262311/Extremalnoe_Programmirovaniye_-_Razrabotka_Ch...
Какой вариант/паттерн подходит для тестирования порядка вызова методов?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
fez
Forum Administrator
1c++ power user
Отсутствует


I wanted to cry, but the
tears wouldn't come

Сообщений: 2712
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #24 - 28. Июня 2006 :: 07:16
Печать  
artbear писал(а) 28. Июня 2006 :: 05:32:
Какой вариант/паттерн подходит для тестирования порядка вызова методов?

Ты ее просто почитай. Там на целую главу расписаны первоначальные шаги создания системы юниттестирования.

Кстати, аналогичным образом реализован FuncTest\UnitTests\ТестТестовогоСлучая.txt::тест_ЗапускаМетода()
  
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #25 - 28. Июня 2006 :: 07:17
Печать  
Да, седмин мне это уже подсказал.
Сижу, читаю книгу.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Deb
1c++ developer
Отсутствует


Sex, drugs and 1C

Сообщений: 41
Зарегистрирован: 21. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #26 - 28. Июня 2006 :: 11:34
Печать  
Не понял, а ошибку исправили?
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #27 - 28. Июня 2006 :: 11:47
Печать  
Конечно, нет, еще не успели.
Ты же вроде должен был видеть сообщение Михаила на тех.форуме об этом
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Утечка памяти при наследовании!!!
Ответ #28 - 28. Июня 2006 :: 22:50
Печать  
Deb писал(а) 28. Июня 2006 :: 11:34:
Не понял, а ошибку исправили?

Исправили.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Утечка памяти при наследовании!!!
Ответ #29 - 29. Июня 2006 :: 06:13
Печать  
Исправили, все работает.
Но пока нет юнит-тестов Печаль
Sedmin, может быть, ты напишешь тесты для проверки работы деструкторов "по умной методе Кента Бека", а ?
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 
ОтправитьПечать