Здравствуйте, ginger24, Вы писали:
G>>>Чем омжно отследить утечку памяти? Пишу под g++ FreeBSD, программа в памяти раздувается до размера примерно пол-гига памяти после чего дохнет
G>>>Не могу отследить, где там что переполняется, при запуске программа уходит в ежим демона и там крутятся несколько циклов, с чего начать?
K>>/usr/ports/devel/valgrind
K>>Иногда под FreeBSD работает некорректно, тогда миеет смысл найти линукс и прогнать под valgrind'ом там.
G>А как оно работает, по русски дока есть? А то у меня уже башка не варит
Ставишь, потом запускаешь примерно так:
valgrind --tool=memcheck --trace-children=yes \
--suppressions=./vg.supp --num-callers=8 \
--memcheck:leak-check=yes --memcheck:leak-resolution=high \
/path/to/your/daemon --daemon-arg1 --daemon-arg2 2>&1 | tee vg.log
По выходу демона (или пришибанию valgrind'а SIGTERM'ом) получишь на экране и в vg.log сообщения об ошибках, в том числе о ликах с указанием места выделения памяти.
G>пробовал gdb6 использовать, но не могу им ничего отловить
gdb-то чем поможет утечки ловить?..