Jaki jest najlepszy darmowy wykrywacz wycieków pamięci dla programu C / C++ i jego wtyczek DLL? [zamknięte]

Mam .exe i wiele wtyczek .moduły dll, które .exe ładuje. (Mam źródło dla obu.) Rozwiązanie wieloplatformowe (ze źródłami) byłoby idealne, ale platformę można zawęzić do WinXP i Visual Studio (w moim przypadku 7.1/2003).

Wbudowany VS wykrywacz nieszczelności podaje tylko linię, z której wywołano new / malloc, ale mam wrapper dla alokacji, więc najlepiej byłoby użyć pełnego symbolicznego śladu stosu.

Detektor byłby również w stanie wykryć wyciek w obu .exe i dołączoną do niego wtyczkę .moduły dll.

Author: Johan, 2008-08-25

7 answers

Osobiście używam Visual Leak Detector , chociaż może powodować duże opóźnienia, gdy wyciekają duże bloki (wyświetla zawartość całego wyciekającego bloku).

 34
Author: Zooba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 11:52:32

Jeśli nie chcesz przekompilować (jak wymaga tego wizualny Wykrywacz Nieszczelności), polecam WinDbg , który jest zarówno wydajny, jak i szybki (choć nie jest tak łatwy w użyciu, jak można by sobie życzyć).

Z drugiej strony, jeśli nie chcesz zadzierać z WinDbg, możesz rzucić okiem na UMDH , który jest również rozwijany przez Microsoft i jest łatwiejszy do nauczenia się.

Spójrz na te linki, aby dowiedzieć się więcej o WinDbg, wyciekach pamięci i zarządzaniu pamięcią w ogólne:

 16
Author: David Alfonso,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-10-28 08:02:59

Miałem dobre doświadczenia z racjonalnym oczyszczaniem . Słyszałem też miłe rzeczy o Valgrind

 7
Author: Anders Sandvig,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-25 07:54:46

Jak dla mnie używam deleaker do lokalizowania przecieków. Cieszę się.

 2
Author: MastAvalons,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-18 10:03:02

Mój darmowy Profiler pamięci MemPro pozwala porównać 2 migawki i daje ślady stosu dla wszystkich przydziałów.

 2
Author: Stewart Lynch,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-18 10:10:17

Wypróbuj detektor wycieku pamięci Jochena Kalmbacha w projekcie kodu. URL do najnowszej wersji był gdzieś w komentarzach, kiedy ostatnio sprawdzałem.

 1
Author: Agnel Kurian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-08-25 09:52:34

Jak napisało kilku moich znajomych istnieje wiele darmowych wykrywaczy wycieków dla C++. Wszystko to spowoduje narzut podczas uruchamiania kodu, około 20% wolniej. I preffer Visual Leak Detector for Visual C++ 2008/2010/2012, możesz pobrać kod źródłowy z - wpisz opis linku tutaj .

 1
Author: Idanuda,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-20 11:58:21