Поиск по сайту
Форумы 
Реклама
|
Страницы сообщения: [1] [2] | Просмотров - 7691
| Устранение утечек памяти | Добавить этот топик в закладки » | | RSS-лента ответов » |
|
|
azamprod

Gold Member | # | Сообщение добавлено 04.01.2013 00:27:53 Как можно проследить(позже устранить) утечку памяти? Допустим я написал программу на С, вызывал кучу malloc'ов, кучу free() к ним, но код большой, и есть подозрения что где то забыл дописать free'шки. Есть какая нибудь виртуальная среда в которой можно запустить приложение и протестировать на наличие нежданных результатов? | | Сказать спасибо Ответить Цитировать |
| ddos-bot
Scum of Society | # | Сообщение добавлено 04.01.2013 00:59:19 Отредактировано 04.01.2013 01:35:42 by Virous
K | Пост бесполезен. Автору необходима не изоляция кода, а тестирование.
Virous |
конечно же есть,поставь виртуалку и смотри | | Сказать спасибо Ответить Цитировать |
| Mineral

Scum of Society | # | Сообщение добавлено 04.01.2013 01:05:23 Отредактировано 04.01.2013 01:44:41 by Virous azamprod, бегом на яндекс и ищи тулзу "Anvir task manager". Она бесплатная. Там информация обо всех процессах, дескрипторах выбранной проги. Нужно настроить столбцы в режим "скорого обновления".
От себя добавлю, что утечки памяти встречаются при неправильном использовании api для рисования и работы с контекстом (например, CreateCompatibleDc/CreateCompatibleBitmap...). Нужно запустить скомпилированную прогу, развернуть окно анвира а наблюдать, в какую сторону изменяется цифра занимаемой прогой памяти.
Примечание:
Anvir task manager - http://www.anvir.net/downloads/anvirrus_downpage.exe | | Сказать спасибо Ответить Цитировать |
| Virous

Gold Member | # | Сообщение добавлено 04.01.2013 01:10:06 Диспетчер задач показывает объем расходуемой памяти. Ахтунг! Собакирен мит зубен клац, клац! Зубен зи дойч! | | Сказать спасибо Ответить Цитировать |
| Mineral

Scum of Society | # | Сообщение добавлено 04.01.2013 01:18:54 Диспетчер задач ужасно неудобен(( Кстати, пользуясь моментом, хочу спросить: какой прогой можно снять дампы? По умолчанию в семерке снимает диспзад, но у меня windows me | | Сказать спасибо Ответить Цитировать |
| Virous

Gold Member | # | Сообщение добавлено 04.01.2013 01:28:34 Mineral
Диспетчер задач ужасно неудобен
В Windows 8 диспетчер задач превышает по мощности любую предыдущую версию. В остальных системах нужно использовать альтернативные диспетчеры. Например, использую System Explorer. Можно и другие.
По поводу дампов - http://msdn.microsoft.com/en-us/windows/hardware/gg463009.aspx. Ахтунг! Собакирен мит зубен клац, клац! Зубен зи дойч! | | Сказать спасибо Ответить Цитировать |
| azamprod

Gold Member | # | Сообщение добавлено 04.01.2013 12:13:47 ddos-bot
конечно же есть,поставь виртуалку и смотри
"супер ответ", если ты не рубишь в темке, то зачем вообще отписываешься?
Virous
Диспетчер задач показывает объем расходуемой памяти.
Показать то он покажет сколько программа использует, но вручную подсчитывать сколько байт висит, сколько уже освобождено, это не облегчит задачу.
Спасибо за ваши ответы, ча гляну в сторону Anvir task manager, если что отпишу.
Добавлено 05.01.2013 19:19:33 (через 1 день 7 часов 6 минут 46 секунд )
Mineral Anvir task manager
Не то это =) Atm скорее продвинутый диспетчер задач, нежели программа для анализа программ.
В общем проблема устранена, жесткой пошаговой отладкой, вот кстати недавно, случайно натолкнулся на статью про Google Performance Tools (GPT) - как раз для отслеживания утечек памяти, может кому пригодится. | | Сказать спасибо Ответить Цитировать |
| Mineral

Scum of Society | # | Сообщение добавлено 06.01.2013 12:52:41 ((( Жаль, что не смог помочь(( Но сам я именно atm пользовался( | | Сказать спасибо Ответить Цитировать |
| vbloodv

Novice | # | Сообщение добавлено 15.01.2013 01:30:35 Уважаемый azamprod, не хочу сказать что вы не компетентны в программировании, но мне кажется пора бы уже прикрутить к своим приложением boost::shared_ptr  , а то какие-то дюже барадатые методы вплоть до ассемблера.
По поводу Google Performance Tools спасибо  ! Думаю что ты мне помог, я раньше пользовался CheatEngine62, но узнать позже через что происходит утечка отнимало силы. По адресам то... | | Сказать спасибо Ответить Цитировать |
| azamprod

Gold Member | # | Сообщение добавлено 15.01.2013 18:50:50 Отредактировано 15.01.2013 18:51:32 by azamprod Уважаемый vbloodv, спасибо за подсказку с boost::shared_ptr, но это(написание программы) было задание с универа, и всякие вкусные плюшки типа boost'a, препод запрещает юзать. | | Сказать спасибо Ответить Цитировать |
| Страницы сообщения: [1] [2] |