Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.75
xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
#1

Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. - C++

26.07.2006, 01:36. Просмотров 1980. Ответов 4
Метки нет (Все метки)

Помогите пожалуйста.
Есть сервис nt.
Попробую передать основной смысл, чтоб не грузить ненужным кодом.

// обработчик
void ServHandler(DWORD Opcode)
{
InitArr();
while (Status == "'Running'")
{
// Засыпаем на 5 минут
Sleep(60000*5);
Function();
}
KillArr();
}

InitArr() - выделение памяти.
KillArr() - освобождение.

В Function():
1) WSAStartup(MAKEWORD(1, 1), &wd); - инициализация винсока.
WSACleanup(); - тож присутствует.
2) Работа со строками: strcpy, strlen
3) HINTERNET hInternet = .....
hInternetFile = InternetConnect(hInternet.....
И соответственно:
InternetCloseHandle(hInternetFile);
InternetCloseHandle(hInternet);

Смысл сервиса:
Каждые 5 минут коннектится на фтп и оставляет там файл.

Ситуация следующая. Отслеживал память в диспетчере.
Запуск сервиса - 2024 КБ
1 коннект - 3936 КБ
2 коннект - 4012 КБ
3 коннект - 4012 КБ
сейчас уже 7 и всё ещё 4012 КБ.
При всех коннектах результат тот же и работа во всех случаях правильная.

Прошу прощения за скорее всего глупые вопросы, но всё же интересно, что же происходит?

Стоит ли ожидать последующего увеличения расхода памяти и можно ли доверять диспетчеру задач.
ПросвЯтите плиз.

С уважением, Дмитрий
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2006, 01:36     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти.
Посмотрите здесь:

Утечка памяти C++
C++ Утечка памяти
Утечка памяти?! C++
C++ Утечка памяти
Утечка памяти C++
Утечка памяти C++
C++ Утечка памяти
Утечка памяти C++
C++ Утечка памяти
C++ Утечка памяти
Утечка памяти C++
Утечка памяти C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
26.07.2006, 16:38     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. #2
Диспетчеру задач доверять нельзя.



Для проверки программы на утечку памяти стоит воспользоваться инструментами диагностики. Например, если ваша программа позволяет использование классов MFC библиотеки, то рекомендую воспользоваться встроенными механизмами - класс CMemoryState.



Вот здесь можно посмотреть примеры:

http://msdn2.microsoft.com/en-us/library/8ky2wh64.aspx

http://msdn2.microsoft.com/en-us/library/x832ycx7.aspx



Удачи,

Владимир


xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
26.07.2006, 21:41  [ТС]     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. #3
boombastik (26.07.2006)
Диспетчеру задач доверять нельзя.

Для проверки программы на утечку памяти стоит воспользоваться инструментами диагностики. Например, если ваша программа позволяет использование классов MFC библиотеки, то рекомендую воспользоваться встроенными механизмами - класс CMemoryState.

Вот здесь можно посмотреть примеры:
http://msdn2.microsoft.com/en-us/library/8ky2wh64.aspx
http://msdn2.microsoft.com/en-us/library/x832ycx7.aspx

Удачи,
Владимир
Спасибо, Владимир, но у меня всё без mfc и очень бы нехотелось с ним сейчас связываться. Что делать в этом случае?
С Уважением, Дмитрий
boombastik
7 / 7 / 0
Регистрация: 13.02.2007
Сообщений: 1,255
27.07.2006, 14:30     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. #4
Например вот так: http://www.flipcode.com/articles/art...oryleaks.shtml



Вкратце, скомпилировать программу в Debug-режиме использовать функцию DumpUnfreed() в момент, когда ты считаешь, что вся память уже освобождена, увидишь список неосвобожденных переменных.



Можно использовать профессиональные инструменты поп поиску memory leaks и анализу приложения в целом, так называемые профайлеры. Что-нибудь типа такого:

http://www.codeproject.com/tools/leakfinder.asp

http://www.automatedqa.com/products/aqtime/

http://www.lw-tech.com/

http://www.glowcode.com/summary.htm



и др. погугли, я не знаю какой профайлер считается лучшим для VC++



Удачи,

Владимир
xadd
0 / 0 / 0
Регистрация: 25.07.2006
Сообщений: 10
27.07.2006, 21:50  [ТС]     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти. #5
Спасибо!
Теперь вижу, куда нужно рыть.
С уважением, Дмитрий
Yandex
Объявления
27.07.2006, 21:50     Каждые 5 минут коннектится на фтп и оставляет там файл. Утечка памяти.
Ответ Создать тему
Опции темы

Текущее время: 06:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru