Форум.orn

HARD&SOFT => Программы => Тема начата: Романтик от 14 Марта 2008, 10:25:13

Название: VC++ Memory Leak
Отправлено: Романтик от 14 Марта 2008, 10:25:13
Народ кто чем пользуется для устранения утечек памяти.
Наткнулся в инете на DeLeaker но не могу найти серийник для него (да мне стыдно).

Мож у кого есть аналоги для анализа дебажного экзешника хорошие?
Название: Re: VC++ Memory Leak
Отправлено: Романтик от 14 Марта 2008, 18:37:24
Нету Сишников тут что ли :(
Название: Re: VC++ Memory Leak
Отправлено: tier от 14 Марта 2008, 19:06:44
не ленись.
набери www.google.com
Название: Re: VC++ Memory Leak
Отправлено: Романтик от 14 Марта 2008, 19:49:55
Набрал. Скачал. Но не могу найти серийник.
И поэтому интересно кто чем пользуется.
Название: Re: VC++ Memory Leak
Отправлено: tier от 14 Марта 2008, 20:00:49
Вот это я и предлагал поискать в гугле.
http://www.codenet.ru/progr/cpp/memleaks.php
http://www.opennet.ru/openforum/vsluhforumID9/1720.html
Название: Re: VC++ Memory Leak
Отправлено: Романтик от 14 Марта 2008, 23:36:16
хех, я имел ввиду утилиты встраиваемые
Например про ту что я писал. Я ей немного недоверяю. Она утверждает что в

MSG  msg;
while (true)
{
if (::PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT) break;
::TranslateMessage(&msg);
::DispatchMessage(&msg);

}//while
return(int(msg.wParam));

на каждом проходе пика есть утечка. А я её не вижу, ибо ещё приложение не многопоточное...  :-\
Название: Re: VC++ Memory Leak
Отправлено: tier от 14 Марта 2008, 23:51:19
На богомерзких плюсах не пишу. С этим кодом не помогу.
А вообще - открой для себя valgrind вместо каких-то GUI-шных прог, которые еще и крякать надо...
Название: Re: VC++ Memory Leak
Отправлено: Романтик от 15 Марта 2008, 00:07:46
По мне VC++ самое то.
Как аналог Эклипс, но нужно будет о дебагере позаботицо отдельно.
А так если вернуться к пику, то всё равно не понимаю.
Если шаришь в стеке глянь.

0x014D1EA0 (Heap)

0x7c9105d4
SSSensor.dll!SsDeleteScreenSaverSensor + 5414 bytes
SSSensor.dll!SsDeleteScreenSaverSensor + 4797 bytes
0x7c9011a7
0x7c91cbab
0x7c916178
0x7c9162da
0x7c801bb9
USER32.dll!EnumClipboardFormats + 581 bytes
0x7c90eae3
MSCTF.dll!TF_UninitSystem + 2563 bytes
USER32.dll!IsCharAlphaW + 346 bytes
USER32.dll!IsCharAlphaW + 259 bytes
USER32.dll!EndDialog + 274 bytes
0x7c90eae3
USER32.dll!PeekMessageW + 359 bytes
CEEngine(MemoryFixed).exe!WinMain Line 90 (c:\documents and settings\fhtagn\рабочий стол\ceengine(memoryfixed)\ceengine(memoryfixed)\ceapplication.cpp)
CEEngine(MemoryFixed).exe!__tmainCRTStartup Line 578 (f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c)
CEEngine(MemoryFixed).exe!WinMainCRTStartup Line 403 (f:\rtm\vctools\crt_bld\self_x86\crt\src\crtexe.c)
0x7c816d4f
0x00000000

0x014D1FD0 (Heap)
Название: Re: VC++ Memory Leak
Отправлено: tier от 15 Марта 2008, 01:34:11
Там все очевидно. Показано, сколько памяти съедает вызов такой-то функции из такой-то dll.
А ты уже анализируй эти данные и думай, почему так и что нужно исправить. Програмы которая за тебя бы твой код переписала - нету.
Но, вообще, я в виндовых особенностях работы с библиотеками ничего не понимаю, в винде и для винды ничего не делаю.
Название: Re: VC++ Memory Leak
Отправлено: Романтик от 15 Марта 2008, 09:34:57
О здорова. А под что пишешь?
Я за свою жизнь писал только один раз под Linux и то на Кайликсе.
А так по работе пишу токапод мобильные игровые платформы от консолей.
А по поводу того примерчика, меня в шок опровергает то, что все вызовы Апишные, не мои, то есть выдраннные из Кернел32.  :-\ Из моего только ПикМесседж в который я сую даже не область памяти а существующий адрес стат переменной. Короче байда какая то.