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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Стандартные средства, поиска утечек памяти 
V
    Опции темы
Rickert
  Дата 14.3.2007, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



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




--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
MAKCim
Дата 14.3.2007, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



1.
<mcheck.h>
mtrace()
muntrace()
2.
библиотека ccmalloc
3.
библиотека Electric Fence


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Rickert
Дата 15.3.2007, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Цитата

1.
<mcheck.h>
mtrace()
muntrace()

У меня man на них ничего не выдаёт. Не объяснишь вкратце, как их юзать?

Это сообщение отредактировал(а) Rickert - 15.3.2007, 09:05


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
MAKCim
Дата 15.3.2007, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



mtrace() ставит хуки на вызовы malloc(), realloc(), free()
muntrace() отключает хуки
переменная среды MALLOC_TRACE должна содержать путь к доступному для записи файлу, куда mtrace() будет сливать всю статистику по вызовам
кроме того, как GNU extensions доступны в libc (<malloc.h>)
__malloc_hook(), __realloc_hook(), __memalign_hook(), __free_hook(), __malloc_initialize_hook(), __after_morecore_hook()
да, еще <mcheck.h> тоже GNU extension

Это сообщение отредактировал(а) MAKCim - 15.3.2007, 09:57


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Rickert
Дата 15.3.2007, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Всё что ты перечислил работает только с malloc / free ?
Я на new / delete ориентировался.


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
MAKCim
Дата 15.3.2007, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



new/delete реализованы через malloc()/free()
в конце концов можно попробовать

Это сообщение отредактировал(а) MAKCim - 15.3.2007, 12:50


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
Rickert
Дата 16.3.2007, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ситхи не пройдут!
****


Профиль
Группа: Комодератор
Сообщений: 3356
Регистрация: 11.7.2006
Где: Лакрима

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



Спасибо!


--------------------
Ни что не внушает сна крепче, чем день приисполненный трудов!
PM MAIL WWW Skype GTalk   Вверх
proc_maker
Дата 22.3.2007, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Цитата(Rickert @ 15.3.2007,  08:53)
Цитата

1.
<mcheck.h>
mtrace()
muntrace()

У меня man на них ничего не выдаёт. Не объяснишь вкратце, как их юзать?

Скажите пожалуйста, а какими средствами можно сделать то же самое что делает mtrace но только для одного конкретного потока программы, чтобы не получать данные по другим потокам т.к. получаются ОГРОМНЕЙШИЕ логи. И еще попутный вопрос. Как в gdb я могу посмотреть в каком месте программы была выделена эта память (в случае утечки) если стека уже нет, а только остался адрес переменной чтобы найти причину утечки. Т.е. другими словами, я вижу что моя программа занимает пол-гига виртуальной памяти, как узнать какой из потоков занимает ее большую часть чтобы найти где утечка?

Спасибо огромное!

Это сообщение отредактировал(а) proc_maker - 22.3.2007, 15:38
PM MAIL ICQ Skype   Вверх
MAKCim
Дата 22.3.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



Цитата(proc_maker @  22.3.2007,  15:36 Найти цитируемый пост)
Скажите пожалуйста, а какими средствами можно сделать то же самое что делает mtrace но только для одного конкретного потока программы, чтобы не получать данные по другим потокам т.к. получаются ОГРОМНЕЙШИЕ логи

mtrace() ставит hook на malloc, а обращение к malloc может быть в разных потоках
так что без извращений никак
я так понимаю у тебя речь идет о pthreads
тогда думаю может помочь связка pthread_self() + mtrace() + __malloc_initialize_hook (см. man malloc_hook)


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
proc_maker
Дата 23.3.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Спасибо за совет!
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

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

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


 




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


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

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