|
|
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Интересуют С/С++ и линукс средства. Кто как? Поделитесь опытом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 11:05 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Кто нибудь работал с vingrind'ом? Что за ошибки он пишет: Invalid read of size 4? Syscall param open(mode) contains uninitialized byte(s)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 12:05 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
скорее оффтоп. а что именно утекает? куски массивов? есть прикол про то, что даже для new char выделяется дополнительно 128 байт памяти. поэтому я использую свой менеджер памяти. например выделение сразу 100*100 структур, а потом еще и еще. да и удалять так легче. аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 12:40 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Утечки, сейчас ищу. Половину уже устранил. А вот, что за ошибки описанные выше, ума не приложу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 12:50 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Для того чтобы устранить утечки памяти, равно как, и утечки других динамических ресурсов надо помещать такие виды ресурсов под управление scope guard-ов (smart pointer). Но к сожалению такого подхода надо придерживатся с самого начала проектирования. Для отлова же утечек в уже готовом приложении обычно переопределяют operator new, malloc и каждое аллоцирование помещают в некий список, а далее в переопределенных operator delete, free их этого списка удаляют переданный указатель. Все что осталось в списке на конец работы программы - это утечки. Удачи! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 13:11 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Анатолий Широков пишет: > проектирования. Для отлова же утечек в уже готовом приложении обычно > переопределяют operator new, malloc и каждое аллоцирование помещают в > некий список, а далее в переопределенных operator delete, free их этого > списка удаляют переданный указатель. Все что осталось в списке на конец > работы программы - это утечки. MS VC RTL в Debug делает имменно это самое. Какие еще вам нужны тулзы ? Или не на Windows работаете ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 15:30 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
а почетать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 15:36 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
A ещё есть простое правило: вызвал объект - потом не забудь убить. Если класс - то в деструкторе, иначе по концу работы ф-ции или main (Winmain). Утечка переменных - уже тебя не касается, сам их не почистишь. А вот что твоё - следи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:44 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Den_diA ещё есть простое правило: вызвал объект - потом не забудь убить. Если класс - то в деструкторе, иначе по концу работы ф-ции или main (Winmain). Утечка переменных - уже тебя не касается, сам их не почистишь. А вот что твоё - следи. Я правило что ли просил? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2006, 17:46 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
про valgrind взгляни на эту ссылку http://www.linux.org.ru/view-message.jsp?msgid=1223731 valgrind может иногда показывать ошибки там где их нет еще для отслеживания утечек посмотри man mtrace (вещь достаточно простая, но я ей не пользовался) также рекомендую воспользоваться библиотекой efence (man efence) если она у тебя установлена, эта библиотека не ищет утечки памяти, но может помочь найти например выход за границу массива, и доступ к неинициализированному указателю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:10 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
ну и еще есть совсем тупой, но иногда довольно эффективный способ просто запускать разные части программы в вечном цикле, в консоли запустить top и смотреть потом где происходит утечка :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:18 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Sandro_Kпро valgrind взгляни на эту ссылку http://www.linux.org.ru/view-message.jsp?msgid=1223731 valgrind может иногда показывать ошибки там где их нет еще для отслеживания утечек посмотри man mtrace (вещь достаточно простая, но я ей не пользовался) также рекомендую воспользоваться библиотекой efence (man efence) если она у тебя установлена, эта библиотека не ищет утечки памяти, но может помочь найти например выход за границу массива, и доступ к неинициализированному указателю. Пасиб. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:38 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
Sandro_Kну и еще есть совсем тупой, но иногда довольно эффективный способ просто запускать разные части программы в вечном цикле, в консоли запустить top и смотреть потом где происходит утечка :) Примерно, так и собирался делать. Обрезать постепенно программу, убирая некоторую функциональность. Но с valgrind оказалось удобнее этого делать, т.к. он это сразу показывает. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:40 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
AkhИнтересуют С/С++ и линукс средства. Кто как? Поделитесь опытом. LeackTracer ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2006, 12:46 |
|
||
|
Отслеживание потери памяти.
|
|||
|---|---|---|---|
|
#18+
AkhИнтересуют С/С++ и линукс средства. Кто как? Поделитесь опытом. Использую более 3-х лет Numega BoundsCheker. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2006, 17:29 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34206651&tid=2029775]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
169ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 530ms |

| 0 / 0 |
