Czy istnieje dobry zamiennik Valgrind Dla Windows?

zamknięty. To pytanie i jego odpowiedzi są zamknięte , ponieważ pytanie jest off-topic, ale ma znaczenie historyczne. Obecnie nie przyjmuje nowych odpowiedzi ani interakcji.

Szukałem Valgrind aby pomóc popraw moje kodowanie/debugowanie C kiedy odkryłem, że jest tylko dla Linuksa - nie mam innej potrzeby ani zainteresowania przeniesieniem mojego systemu operacyjnego na Linuksa, więc zastanawiałem się, czy jest równie dobry program dla Windows.

Author: KindDragon, 2009-01-05

30 answers

Jeszcze kilka dobrych komercyjnych narzędzi:

 29
Author: orip,
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
2009-01-05 17:19:23

Jak zauważył jakobengblom2, valgrind ma kombinezon narzędzi. W zależności od tego, o którym mówisz, istnieją różne części licznika okien. Wspomnę tu tylko o OSS lub darmowych narzędziach.

1. MemCheck:

Dr. Memory. Jest to stosunkowo nowe narzędzie, działa bardzo dobrze na Windows 7. Moją ulubioną funkcją jest to, że grupuje te same stosy alokacji przecieków w raporcie.

Http://code.google.com/p/drmemory/

Ja też używałem UMDH( http://support.microsoft.com/kb/268343 ) i okazało się, że jest cichy i łatwy w konfiguracji. Działa od Win2000 do Win7.

AppVerifier jest must have swissknife dla programistów kodu natywnego windows, jego" memory " checker robi podobną pracę http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

2. Callgrind:

Moim ulubionym jest verysleepy ( http://www.codersnotes.com/sleepy ) jest mały, ale bardzo przydatny i łatwy w użyciu.

Jeśli potrzebujesz więcej funkcji, AMD CodeAnalyst ™ Performance Analyzer jest bezpłatny: http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

Narzędzia do analizy wydajności systemu Windows są wolne od firmy Microsoft, nie są łatwe w użyciu, ale mogą wykonać zadanie, jeśli chcesz spędzić czas. http://blogs.microsoft.co.il/blogs/sasha/archive/2008/03/15/xperf-windows-performance-toolkit.aspx Pobierz: http://msdn.microsoft.com/en-us/performance/cc752957

3. Masyw:

Podobne (nie do końca dopasowane) darmowe narzędzia w windows To:

VMMap z sysinternals: http://technet.microsoft.com/en-us/sysinternals/dd535533

!Komenda sterty w windbg : http://hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

4. Cachegrind:

Wyżej wymienione Narzędzia wydajności systemu Windows mają pewien poziom możliwości profilowania pamięci podręcznej L2, ale nie są tak dobre i łatwe w użyciu jak Cachegrind.

5. DRD:

Nie znalazłem jeszcze nic darmowego i tak potężnego na Windows, jedynym darmowym narzędziem dla windows, które mogę znaleźć, jest nieco zamknięty checker "lock" w AppVerifier: http://msdn.microsoft.com/en-us/library/dd371695%28v=vs.85%29.aspx

 117
Author: Lailin Chen,
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-07-05 10:53:22

Dlaczego nie użyć Valgrind + Wine do debugowania aplikacji Windows? Zobacz też http://wiki.winehq.org/Wine_and_Valgrind

(Chromium używa tego do sprawdzenia wersji Windows pod kątem błędów pamięci; zobacz build.chromium.org i spójrz na eksperymentalne lub pamięci wodospady, i szukać wina.)

Jest też Dr Memory, zobacz dynamorio.org/drmemory.html

 31
Author: Dan Kegel,
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-01-31 19:41:39

Dla Visual C++, spróbuj Visual Leak Detector . Kiedy go użyłem, wykrył wyciek pamięci z połączenia new i zwrócił rzeczywistą linię w kodzie źródłowym wycieku. Najnowszą wersję można znaleźć pod adresem http://vld.codeplex.com/.

 15
Author: tgs_stdio,
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-03-20 14:58:34

Środowisko programistyczne dla Windows, którego używasz, może zawierać własne narzędzia. Visual Studio pozwala na przykład wykrywać i izolować wycieki pamięci w programach

 14
Author: dmityugov,
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
2009-01-05 16:40:50

Chciałbym wymienić jakieś narzędzie, mam nadzieję, że się przyda

Przeczytaj ten Artykuł Aby uzyskać więcej szczegółów

  1. oczyść
  2. Bounds Checker
  3. Coverity (w zasadzie analizator kodu, ale złapie wyciek pamięci w statycznym)
  4. Kod Blasku
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind
  10. mpatrol
  11. Insure++
 14
Author: Satbir,
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
2009-10-01 13:59:54
 13
Author: Diaa Sami,
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
2009-08-28 01:16:54

Jest Pageheap.exe część narzędzi debugowania dla Windows. Jest darmowy i jest w zasadzie niestandardowym alokatorem pamięci/deallokatorem.

Zobacz http://support.microsoft.com/kb/286470

 12
Author: ,
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
2009-04-09 05:37:22

W połączeniu z Visual Studio zazwyczaj używam Visual Leak Detector lub po prostu _CrtDumpMemoryLeaks (), które jest wywołaniem API win32. Obie nie są niczym wymyślnym, ale wykonują swoją pracę.

 8
Author: Jasper Bekkers,
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-08-02 23:49:58

Miałem kiedyś okazję używać Compuware DevPartner Studio i to było naprawdę dobre, ale dość drogie. Tańszym rozwiązaniem może być GlowCode, właśnie pracowałem z 5.wersja x i pomimo pewnych problemów z dołączeniem do procesu, który musiałem debugować, działało całkiem dobrze.

 6
Author: Manuel,
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
2009-01-05 15:50:44

Uwielbiam walidator pamięci firmy Software Verification.

 6
Author: stevex,
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
2009-01-05 15:58:22

Viusual Studio może pomóc w wykrywaniu wycieków pamięci. Zobacz Microsoft Visual C++ Tips and Tricks - > Sekcja "wycieki pamięci". Zobacz też ten post W SO

Chociaż prawdziwe śledzenie jest możliwe tylko przy edycji zespołowej Visual Studio.

 5
Author: fmuecke,
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
2017-05-23 12:02:38

Lista podobnych narzędzi znajduje się w linku" Source Test Tools " na stronie Software QA Testing and Test Tool Resources.

Używałem BoundsChecker,DevPartner Studio i Intel V-Tune w przeszłości do profilowania. Najbardziej podobało mi się V-Tune; można emulować różne Chipsety Intela i to daje wskazówki, jak zoptymalizować dla tej platformy.

 4
Author: Patrick Cuff,
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
2009-01-05 15:53:58

Czy detektor wycieku pamięci Jochena Kalmbacha kwalifikuje się?

PS: URL do najnowszej wersji jest zakopany gdzieś w wątku komentarza artykułu.

 3
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
2010-03-03 09:47:17

LeakDiag, UMDH, App Verifier, DebugDiag, są użytecznymi narzędziami do poprawy odporności kodu i znalezienia wycieków pamięci.

 3
Author: Alex Budovski,
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-04-19 11:38:00

Biblioteka testów Boost wykrywa wycieki pamięci.

 3
Author: zr.,
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-07-02 07:08:59

A co powiesz na oczyszczenie ?

 3
Author: grigy,
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-02-06 14:13:19

Wypróbuj produkt Intel Inspector XE, który pomoże Ci wykryć zarówno problemy z pamięcią, jak i wątkami: http://software.intel.com/en-us/articles/intel-inspector-xe/

 3
Author: Alexey Alexandrov,
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-02-21 19:57:46

Być może CodeSnitch będzie czymś, czego szukasz? http://www.entrek.com/codesnitch.html

 2
Author: Alex Fort,
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
2009-02-27 21:02:02

Jeśli tworzysz z Borland/CodeGear / Embarcadero C++ Builder, możesz użyć CodeGuard.

 2
Author: Vince,
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
2009-07-15 22:04:30

Mniej więcej wszystkie Profilery zawierają sprawdzanie wycieków pamięci i pokazują stos, gdy pamięć została przydzielona.

Mogę polecić Intels Parallel Inspector . Prosty w użyciu i nie wymaga rekompilacji. Wersja próbna działa przez 30 dni.

GlowCode iatromatedqa obejmują również takie możliwości. Wszystkie oferują bezpłatne wersje próbne.

Compuware DevPartner (aka BoundsChecker) w przeciwieństwie do tego wymaga spowolnionej rekompilacji "oprzyrządowania" i aplikacja działa również wolniej podczas sprawdzania błędów. A BoundsChecker nie może pracować z 64 bitowymi evsrionami w ogóle. Zrezygnowaliśmy z tego narzędzia.

 2
Author: RED SOFT ADAIR,
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
2009-10-01 09:32:17

Najlepszym narzędziem jakiego kiedykolwiek używałem jest DevPartner BoundsChecker - nie jest darmowy, ale ma okres ewaluacji.

 2
Author: Dror Helper,
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
2009-10-01 10:23:01

Inne narzędzie pamięci dla Twojej listy: walidator pamięci .

Nie za darmo, ale nigdzie w pobliżu tak drogie jak Purify lub Boundschecker.

 2
Author: Stephen Kellett,
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-04-02 13:57:19

Jeśli nie boisz się mingw, oto kilka linków (niektóre mogą działać z MSVC)... http://betterlogic.com/roger/?p=1140

 2
Author: rogerdpack,
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-08-09 14:15:51

Właśnie kończymy Narzędzie do sprawdzania bezpieczeństwa pamięci Dla Windows, które obsługuje GCC i Micrsoft Visual C (jeszcze nie C++), i szukamy Beta testerów.

[[0]}edycja 12 czerwca 2011: już nie Beta, teraz produkcja dla GCC i Microsoft Visual Studio C.
 2
Author: Ira Baxter,
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-06-12 21:06:25

Znalazłem dziś ten projekt SF:

Http://sourceforge.net/p/valgrind4win/wiki/Home/

Przenoszą valgrind na Windows. Prawdopodobnie za kilka lat będziemy mieli niezawodny valgrind na windows.

 2
Author: Calmarius,
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-11-11 06:49:55

Sprawdź to pytanie: Czy istnieje dobry zamiennik Valgrind Dla Windows? . Chociaż ogólny substytut valgrind jest pytany, to głównie omawia detektory wycieku pamięci, a nie wykrywanie warunków wyścigowych.

 1
Author: maykeye,
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
2017-05-23 12:34:33

Użyłem Insure++ , który doskonale sprawdza się w znajdowaniu wycieków/uszkodzeń pamięci c++ i wielu innych błędów, takich jak niezainicjalizowane zmienne, błędy wskaźników, ciągi znaków itp., Robi również wizualne "pokrycie kodu" i użycie pamięci czasu pracy itp.. które dają większą pewność co do Twojego kodu.. Możesz wypróbować wersję trail..

 1
Author: Red,
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
2009-10-01 09:42:05

Możesz przeczytać, co Mozilla robi odnośnie wycieków pamięci. Jednym z narzędzi w ich zestawie jest Garbage collector Hans Boehm używany jako detektor wycieku pamięci.

 1
Author: Cristian Adam,
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
2009-10-01 11:41:28

Możesz spróbować RuntimeChecker trial ot do IBM Purify trial..

Darmowym rozwiązaniem byłoby użycie następującego kodu w Visual Studio:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

Po prostu napisz to na górze wszystkich plików cpp. Wykryje to wycieki pamięci aplikacji podczas zatrzymywania debugowania i wyświetli je w oknie wyjściowym. Podwójne kliknięcie na linii memory leaks spowoduje wyświetlenie linii, w której pamięć jest przydzielana i nigdy nie zwalniana. Może to pomóc : http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

 1
Author: Patrice Bernassola,
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
2009-10-01 12:15:56