Frage

Ich war auf der Suche in Valgrind zu helfen, meine C-Codierung / Debugging zu verbessern, wenn ich es nur für Linux entdeckt ist - ich habe keine andere Notwendigkeit oder Interesse mein O auf Linux in zu bewegen, so habe ich mich gefragt, ob es ein ebenso gutes Programm für Fenster.

War es hilfreich?

Lösung

Einige weitere gute kommerzielle Werkzeuge:

Andere Tipps

Wie jakobengblom2 wies darauf hin, hat valgrind einen Anzug von Werkzeugen. Je nachdem, welche man Sie sprechen es verschiedene Fenster Gegenstücke sind. Ich will nur erwähnen OSS oder kostenlose Tools hier.

1. MemCheck:

Dr. Erinnerung. Es ist ein relativ neues Werkzeug, funktioniert sehr gut auf Windows 7. Mein Lieblings-Feature ist, dass es Gruppen die Zuteilung Stapel in dem Bericht gleiche Lecks.

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

Ich habe auch verwendet UMDH ( http://support.microsoft.com/kb/268343) und fand es ruhig nützlich und einfach zu installieren. Es funktioniert von Win2000 Win7.

AppVerifier ist ein Muss für Swissknife Fenster nativen Code-Entwickler, sein „Gedächtnis“ Checker funktioniert ähnlich Job http://msdn.microsoft.com/en -US / library / dd371695% 28v = VS.85% 29.aspx

2. Callgrind:

Mein Favorit ist verysleepy ( http://www.codersnotes.com/sleepy ) Es ist winzig aber sehr nützlich und einfach zu bedienen.

Wenn Sie mehr Funktionen benötigen, AMD Codeanalyst ™ Performance Analyzer ist kostenlos: http://developer.amd.com/documentation/videos/pages/introductiontoamdcodeanalystperformanceanalyzer.aspx

Windows-Performance-Analyse-Tools sind frei von Microsoft, nicht sehr einfach zu bedienen, sondern können den Job zu erledigen, wenn Sie bereit sind, die Zeit zu verbringen. http: // blogs .microsoft.co.il / blogs / sasha / Archiv / 2008/03/15 / xperf-windows-Performance-toolkit.aspx Herunterladen: http://msdn.microsoft.com/en-us/performance/cc752957

3. Massiv:

Ähnliche (nicht ganz genaue Übereinstimmung) kostenlose Tools auf Windows sind:

VMMap von Sysinternals: http://technet.microsoft.com/en-us/ Sysinternals / dd535533

!

Heap Befehl in windbg: http: // hacksoflife.blogspot.com/2009/06/heap-debugging-memoryresource-leak-with.html

4. Cachegrind:

Die oben genannte Windows-Performance-Tools hat gewisses Maß an L2 Cache-Miss Profilierungsfähigkeit, aber nicht ganz so gut und einfach wie Cachegrind zu verwenden.

5. DRD:

Haben Sie nicht etwas frei und so mächtig unter Windows noch nicht gefunden, das einzige kostenlose Tool für Windows ich finden kann, dass etwas nah ist, ist die „Sperre“ checker in AppVerifier: http://msdn.microsoft.com/en -US / library / dd371695% 28v = VS.85% 29.aspx

Warum Valgrind + Wein nicht Ihre Windows-Anwendung zu debuggen? Sehen    http://wiki.winehq.org/Wine_and_Valgrind

(Chromium verwendet diese die Windows-Version für Speicherfehler zu prüfen, siehe   build.chromium.org suchen und bei den experimentellen oder Speicherwasserfällen, und die Suche nach Wein.)

Es gibt auch Dr.-Speicher finden   dynamorio.org/drmemory.html

Für Visual C ++, versuchen Sie Visuelle Lecksucher . Als ich es verwendet wird, erfasst es einen Speicherverlust von einem new Anruf und kehrte die aktuelle Zeile im Quellcode des Lecks. Die neueste Version kann unter http://vld.codeplex.com/ .

Entwicklungsumgebung für Windows, die Sie verwenden, können ihre eigenen Werkzeuge enthalten. Visual Studio, zum Beispiel, können Sie erkennen und Speicher zu isolieren Lecks in Ihren Programmen

Ich mag einige Tools zur Liste, wird die Hoffnung nützlich sein

lesen Sie Artikel detaillierter

  1. Entschlacken
  2. Bounds Checker
  3. Coverity (im Grunde ist es eine Code-Analyse aber, es wird Speicherleck in statischer fangen)
  4. Glow-Code
  5. dmalloc
  6. ccmalloc
  7. NJAMD
  8. YAMD
  9. Valgrind
  10. mpatrol
  11. Versichern ++

Versuchen Sie DUMA

Es gibt Pageheap.exe Teil der Debugging-Tool für Windows. Es ist kostenlos und ist im Grunde ein benutzerdefinierten Speicherzuordner / deallocator.

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

In Kombination mit Visual Studio I von Visual Leak Detector oder einfach _CrtDumpMemoryLeaks (), die ein win32 api ist Anruf. Beide sind nichts Besonderes, aber sie bekommen den Job zu erledigen.

hatte ich die Chance zu nutzen Compuware DevPartner Studio in der Vergangenheit und dass es ist wirklich gut, aber recht teuer. Eine billigere Lösung könnte sein, GlowCode , ich nur mit einer Version 5.x gearbeitet und trotz einiger Probleme beim Anbringen i ein Verfahren zum Debuggen benötigt, es funktionierte ganz gut.

Ich habe zu lieben Speicher Validator , von einer Firma namens Software Verification.

Viusual Studio kann sich Speicherlecks helfen zu erkennen. Siehe Microsoft Visual C ++ Tipps und Tricks -> "Memory Leaks" Abschnitt. Siehe auch diesen Beitrag in SO

Obwohl reale Verfolgung ist nur möglich mit dem Team Edtion von Visual Studio.

Sehen Sie " Quelle Test Tools " -Link auf der Software QA Testing und Testwerkzeug Ressourcen, um eine Liste von ähnlichen Werkzeugen.

Ich habe Bounds, DevPartner Studio und Intel V-Tune in der Vergangenheit für die Profilerstellung verwendet. Ich mochte V-Tune die beste; Sie könnten verschiedene Intel-Chipsätze emulieren und es würde Ihnen Hinweise, wie für diese Plattform zu optimieren.

Hat Jochen Kalmbach Memory Leak Detector zu qualifizieren?

PS:. Die URL auf die neueste Version irgendwo im Kommentarthread begraben liegt der Artikel

LeakDiag, UMDH, App Verifier, DebugDiag sind alle nützlichen Tools Robustheit des Codes zu verbessern und Speicherlecks zu finden.

Die Boost-Test-Bibliothek kann Speicherlecks erkennen.

Wie wäre es die Entschlacken ?

Versuchen Intel Inspector XE Produkt, das Sie beide Speicher und Threadingprobleme erkennen kann helfen: http://software.intel.com/en-us/articles/intel-inspector-xe/

Vielleicht wäre CodeSnitch etwas sind Sie nach sein? http://www.entrek.com/codesnitch.html

Wenn Sie mit Borland / CodeGear / Embarcadero C ++ Builder entwickeln, könnten Sie Codeguard verwenden.

Mehr oder weniger alle Profilometer einschliessen für Speicherlecks und zeigen Sie den Stapel, wenn der Speicher zugewiesen wurde.

kann ich empfehlen Intel Parallel Inspector . Einfach zu bedienen und keine erneute Kompilierung erforderlich. Die Testversion läuft 30 Tage lang.

GlowCode und AtromatedQA auch solche capabilites. Sie alle bieten kostenlose Tests.

Compuware DevPartner (aka Bounds) in Kontrast braucht verlangsamte „Instrumentierung“ recompile und die Anwendung auch langsamer läuft, wenn auf Fehler zu überprüfen. Und Bounds kann nicht mit 64 Bit evsrions arbeiten. Wir haben an diesem Werkzeug auf.

Das beste Werkzeug, das ich je benutzt DevPartner Bounds - es ist nicht kostenlos, aber es einen Bewertungszeitraum hat.

Ein anderes Memory-Tool für Ihre Liste. Speicher Validator

Nicht kostenlos, aber bei weitem nicht so teuer wie Entschlacken oder Bounds.

Wenn Sie keine Angst vor mingw, sind hier einige Links (einige vielleicht mit MSVC arbeiten) ... http://betterlogic.com/roger/?p=1140

Wir sind nur einen Speicher Sicherheit abgeschlossen Prüfwerkzeug für Windows, die Griffe GCC und Micrsoft Visuelle C (nicht C ++ noch) nicht, und sucht nach Beta-Testern.

EDIT 12. Juni 2011:. Nicht Beta mehr, jetzt die Produktion für GCC und Microsoft Visual Studio C

Ich fand dieses SF-Projekt heute:

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

Sie sind Portierung valgrind auf Windows. Wahrscheinlich in einigen Jahren werden wir eine zuverlässige valgrind auf Fenster.

Sehen Sie sich diese Frage aus: Gibt es einen guten Valgrind Ersatz für Windows ? . Obwohl allgemeiner Ersatz für valgrind gefragt wird, bespricht es hauptsächlich Detektoren Speicherleck und nicht Erkennungen Bedingungen Rennen.

I Versichern verwendet ++, die c bei der Suche nach hervorragenden Job macht ++ Speicherlecks / Verfälschungen und viele andere Fehler wie nicht initialisierte Variablen, Zeiger Fehler, Strings usw. Es tut auch visuelle „Code-Coverage“ und Zeitspeichernutzung usw. laufen .. welche geben mehr Vertrauen auf Ihren Code .. Sie können es für Trail-Version versuchen ..

Sie können lesen möchten, was Mozilla tut in Bezug auf Speicherlecks. Ein Werkzeug in ihrer Toolbox ist der Hans Boehm Garbage Collector verwendet, wie Speicherlecksucher .

Sie können einen Versuch an Runtime Versuch ot auf IBM Entschlacken Studie ..

Eine kostenlose Lösung wäre, den folgenden Code in Visual Studio zu verwenden:

#ifdef _DEBUG
#define new DEBUG_NEW
#endif

Schreiben Sie einfach diese in der Spitze aller Ihrer CPP-Dateien. Dies wird von Speicherleck Ihrer Anwendung erkennt whenc Debug-Durchlauf zu stoppen und sie in dem Ausgabefenster auflisten. Ein Doppelklick auf eine Zeile von Speicherlecks finden Sie die Zeile higlight wo Speicher zugeordnet ist und nie veröffentlicht. Dies kann Ihnen helfen: http://www.flipcode.com/archives/How_To_Find_Memory_Leaks.shtml

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top