| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Куда уходит память. |
| Автор: Хоббит 18.1.2009, 12:23 | ||
| Утечки памяти ищу с помощью valgrind. Беру пустую программу
Проверяю 1 allocs, 0 frees. Думал, что память выделяется под argv пробовал удалять, valgrind сказал, что это не та память. Наверно память выделяется для вызова программы... не знаю точно. Далее пишу mysql_init(&mysql_); mysql_close(&mysql_); Проверяю 2 allocs, 0 frees. Уже интересней mysql_init(&mysql_); mysql_real_connect(......); mysql_close(&mysql_); 17 allocs, 0 frees И ничего я с этим поделать не мог. Неужели память пропадает в внутренних структурах библиотеки mysql? Что за 1 блок остается всегда от программы? |
| Автор: andrew_121 18.1.2009, 12:32 |
| Хоббит, Походу, это тебе нужно капать в код используемой тобой либы. Хотя не факт что память утекает. Возможно, она кешируется. |
| Автор: vinter 18.1.2009, 12:33 |
может проблема в тупости сего инструмента? |
| Автор: andrew_121 18.1.2009, 12:41 |
Исключено!!! В работоспособности сего инструмента убеждался не раз!!! |
| Автор: Lycifer 18.1.2009, 14:18 |
| Если это нативный код, и тестировал на дебаге, это очень странно. |
| Автор: Kallikanzarid 18.1.2009, 14:38 | ||||
Проверь еще раз:
|
| Автор: nickless 18.1.2009, 15:18 |
| Хоббит, название ОСи, версии компилятора, valgrind-а, mysql, (если *nix то еще ядра и glibc), полную строку вызова компилятора, а так же полный вывод valgrind --leak-check=full ./<прога> в студию. |
| Автор: Хоббит 18.1.2009, 15:19 |
| В принципе, так как нигде больше в программе память не утекает. А соединение с бд создается и уничтожается 1 раз. Отложу этот вопрос до лучших времен. А какой еще инструмент вы можете предложить? |
| Автор: Хоббит 18.1.2009, 15:36 | ||||||
Все сделал в командной строке. Получилось. Добавлено @ 15:37 Компилирую в kdevelop, получаю
Добавлено @ 15:39 Параметры компиляции kdevelop все по умолчанию, ничего не менял Код
nickless натолкнул на интересную мысль, выходит все дело в том как kdevelop компилирует файлы |
| Автор: MAKCim 18.1.2009, 15:43 |
это ты зря более полезного инструмента я не видел а для поиска memory leak'ов он просто незаменимый Хоббит, добавь --show-reachable=yes в твоем случае утечек нет reachable блоки вполне могут аллоцироваться без последующего удаления если используется принцип "завершение программы - есть освобождение ресурсов" Добавлено через 5 минут и 2 секунды ну я проверил и что? |
| Автор: vinter 18.1.2009, 15:51 |
я просто предположил, до сегодняшнего дня я и не подозревал о нем Просто используя compuware bound checker я с таким не сталкивался |
| Автор: Dem_max 18.1.2009, 17:31 |
| Попробуй Spy++ из Visual Studio, я сам лично не пользовался но говорят мощная штука. |
| Автор: Хоббит 18.1.2009, 17:37 |
| linux |
| Автор: mes 18.1.2009, 17:44 |
| Куда уходит память В какие города И где найти нам средство Чтоб вновь вернуть сюда http://www.karaoke.ru/song/941.htm |
| Автор: andrew_121 18.1.2009, 18:45 | ||||||
| mes, Кому - Что Добавлено через 46 секунд
И...? |
| Автор: vinter 18.1.2009, 20:12 | ||
mes, в точку |
| Автор: xvr 18.1.2009, 20:42 | ||
Угу, мощная |
| Автор: andrew_121 19.1.2009, 12:11 |
| Затупили |
| Автор: alexsid1982 19.1.2009, 14:51 | ||
| Это проблема либы еще до того как вызывается main происходит разная инициализация, парсинг входных параметров и прочая муть... Для сравнения вот такая прога дает сообщение об утечках до проверочной ...
|