Czy istnieje dobry zamiennik Valgrind Dla Windows?
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.
30 answers
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
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
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/.
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
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
- oczyść
- Bounds Checker
- Coverity (w zasadzie analizator kodu, ale złapie wyciek pamięci w statycznym)
- Kod Blasku
- dmalloc
- ccmalloc
- NJAMD
- YAMD
- Valgrind
- mpatrol
- Insure++
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
Try DUMA
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.
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ę.
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.
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.
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.
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.
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.
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.
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.
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 ?
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/
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
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.
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.
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.
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.
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
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.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.
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.
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..
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.
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
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