2008-09-08 3 views
16

Seit vielen Jahren habe ich zwei große Werkzeuge verwendet BoundsChecker & Purify, aber die Entwickler dieser Anwendungen haben mich im Stich gelassen, sie nicht mehr Mühe in die Pflege oder die Entwicklung von ihnen. Wir haben Firmenkonten bei beiden Firmen, und beide sagen mir, dass sie nicht die Absicht haben, Versionen für 64-Bit-Anwendungen zu entwickeln.64-Bit-Tools wie BoundsChecker & Purify

Kann jemand Open-Source- oder kommerzielle Alternativen empfehlen, die 64-Bit-native C++/MFC-Anwendungen unterstützen?

Antwort

0

Ich habe Bounds Checking und andere dynamische Analyse-Tools verwendet, und während die Architekturen unterschiedlich sind, ist es der Code, den Sie überprüfen - theoretisch könnten Sie Grenzen auf jedem Backend überprüfen und das Ergebnis wäre das gleiche - die Code tritt entweder außerhalb seiner Grenzen oder nicht.

Die einzigen Komplikationen sind die Adressierung von mehr als 4 GB Speicherplatz, die Bearbeitung von Code, den Sie nicht zu einer 32-Bit-Architektur kompilieren können (64-Bit-Objektdateien, für die Sie keine Quelle haben) allgemeine 64-Bit-Migrationsprobleme (plattformspezifischer Code, z. B. auf 0xFFFFFFFF anstelle von -1 zu prüfen)

Auf welche anderen Probleme stoßen Sie bei der Überprüfung von Grenzen Ihres Programms? Können Sie eine 32-Bit-Version nicht kompilieren?

Es ist sicherlich nicht Ihre ideale Lösung, und Sie sollten immer den Code überprüfen, den sie ausführen werden, aber in diesem Fall haben Sie möglicherweise keine Wahl, außer Sie möchten Ihre eigenen Grenzen überprüfen (was ist ein gute Idee auf jeden Fall ...).

-Adam

3

Para hat ein Tool Versichern ++ genannt (Link: http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure), die sagt, es werde das tun.

Ich habe Insure ++ auf 32-Bit und 64-Bit-Anwendungen unter Linux verwendet und es hat funktioniert. Es wurde manchmal verwirrt, als es versuchte, Vorlagen-/STL-Code zu analysieren und würde umfallen.

Diese URL sagt, es funktioniert auf 32- und 64-Bit-Windows, viel Glück!

+0

Parasoft ist die Art von Unternehmen, wo Sie kontaktiert werden müssen, um das Produkt zu bewerten. Keine Downloads: | – sorin

+0

Insure ++ funktioniert jedoch, wenn Sie ein paar Tage Zeit haben, um Ihren Build zu erstellen, und ein paar Stunden, um Ihre Anwendung zu starten. –

0

es ist mein Verständnis, dass BC 9.0 wird WOW64

+0

Ja, sie sagten mir, dass vor fast 12 Monaten auf den Tag, froh, dass ich nicht den Atem anhielt. – titanae

4

Viva64 (http://www.viva64.com/viva64-tool/) Tool bietet Erkennung von Fehlern typisch für 64-Bit-Windows-Anwendungen unterstützen. Viva64 ist ein fusselartiger statischer Analysator von C/C++ - Code. Viva64 integriert sich in die Visual Studio 2005/2008-Umgebung und bietet eine benutzerfreundliche Oberfläche zum Testen Ihrer Softwareprojekte.

2

BoundsChecker 9.01 unterstützt nun endlich VC2008 und x64 Bit.

+1

hmm, tut es nicht –

+0

Nun, es installiert jetzt auf x64 Maschinen, es ist ein Anfang! hoffentlich wird es eines Tages auch mit x64-Code arbeiten. – titanae

+0

Ich glaube nicht, dass sie jemals werden. –

2

versichern ++ nur workse, wenn Sie Ihren Code instrumentieren. Ich habe es einmal probiert. Es dauerte ungefähr 5 Minuten, um etwa 1000 Zeilen Code zu kompilieren. Da das Projekt, das ich kompilieren musste, riesig war, stellte ich schnell fest, dass Insure ++ nicht funktionieren würde.

Ganz zu schweigen von ihrer Berichterstattung, oder die Ausgabe von Insure ++ ist ziemlich archaisch. auch die Laufzeit-Performance-Strafe war attrocious.

Hinweis über boundschecker von numega/compuware/other_new_company: Kaufen Sie es nicht. Es sind nur Profile 32-Bit-Apps. Es macht keine 64-Bit-Apps. Es kann jedoch auf einem 64-Bit-Betriebssystem installiert werden. Ich habe es vor Jahren in unserer App nicht mehr benutzt. Ich benutze es aber manchmal in CppUnit Tests.

Im Allgemeinen bin ich völlig angewidert mit all den nativen Speicher-Leck-Tools da draußen.Sie alle funktionieren nicht oder blockieren Ihre Anwendung beim Herunterfahren.

1

Intel (R) Parallel Inspector (http://software.intel.com/en-us/intel-parallel-inspector/) ist ein Threading- und Memory-Checking-Plugin für Microsoft * Visual Studio; Es unterstützt 32-Bit und 64-Bit C/C++ unter Windows. Es ist eine kommerzielle Anwendung mit einer 30-tägigen kostenlosen Bewertung.

Disclosure: Ich arbeite für Intel.

+0

Und [hier] (https://software.intel.com/sites/default/files/m/d/4/1/d/8/Pointer_Checker-Webinar.pdf) ist eine technische Präsentation für 2012, die ich im Voraus über Verzögerungen usw. als ähnliche Informationen über (viele) andere kommerzielle Tools fand. – Fizz

+0

Das Beste daran ist, dass Intel ständig ändert, wie es heißt. [Hier] (https://software.intel.com/de-de/articles/find-windows-memory-errors-with-intel-inspector-xe) ist die Info für die 2014 Version. – Fizz

2

FYI: BoundsChecker 10.0 läuft auf Windows XP bis Windows 7, sowohl auf 32- als auch 64-Bit-Versionen. Es unterstützt WOW64-Anwendungen und unterstützt auch Visual Studio 2010. In der Tat haben wir die VS2010-Unterstützung innerhalb von 30 Tagen nach der Veröffentlichung von Microsoft veröffentlicht.

Wir haben unseren Rückstand aufgeholt. Wir haben sehr spät die VS2005 und VS2008 Unterstützung erhalten (mit BC 9.0, Herbst 2008), aber es gab eine Vielzahl von Gründen, warum dies passiert ist. Das Wunder war, dass wir es überhaupt rausbekommen haben.

BoundsChecker 10.5, wenn es herauskommt, sollte noch ein paar Leckereien haben. Bleib dran.

Offenlegung: Ich arbeite für MicroFocus.

+0

Wir akzeptieren jetzt Beta-Tester für DPS 10.5. Die BoundsChecker-Komponente (Error Detection) unterstützt jetzt X64-Anwendungen. Die einzigen X86-Funktionen, die in X64 noch nicht unterstützt werden, sind .NET und Deadlock Analysis. –

+0

DPS 10.5 wurde am 4. Februar zum Verkauf freigegeben. Seither ist es bemerkenswert stabil. Wir arbeiten an einem Websync, 10.5.1, der Windows 7 SP1, Windows XP64 SP2 und Visual Studio 2010 SP1 unterstützt. –

+0

Wenn jemand Fragen zu Micro Focus DevPartner Studio oder BoundsChecker hat, besuchen Sie bitte unser Forum unter http://community.microfocus.com/Forums/9_DevPartner. –

0

Application Verifier, für x64 und x86, erkennt Heapbeschädigung http://www.microsoft.com/download/en/details.aspx?id=20028

+1

Es tatsächlich tut, aber bietet extrem wenig Informationen, die zur Entdeckung der Ursache der Korruption führen würde. Ich habe AV verwendet, um ein Problem innerhalb von BoundsChecker selbst zu lösen, aber ich musste alle Kontexthinweise selbst liefern. AV kündigt einfach die Korruption und ihren Standort an und beendet dann das Programm. –

+0

Für einen ausführlicheren Kommentar, siehe [link] (http://community.microfocus.com/blogs/28_DevPartner). –

0

Von IBM PurifyPlus support for 64-bit versions of Microsoft Windows:

Technote (FAQ)

Frage

Ist IBM Rational PurifyPlus auf 64 unterstützt -bit-Versionen von Microsoft Windows?

Ursache

64-Bit-Versionen von Microsoft Windows beliebt bekommen.

Antwort

Ab Version 7.0.1 iFix 003 unterstützt PurifyPlus Test 64-Bit-Anwendungen unter Windows.

Mehr Informationen über iFix 003 können in den folgenden technischen Hinweisen IBM Rational PurifyPlus for Windows v7.0.1.0-003

Sie installieren diese Version von Entschlacken und Sie erhalten Menü einen „Entschlacken (für 64-Bit-Anwendungen)“ zu finden Eintrag im Start .

+0

Purify für Windows X64 wurde vor ein paar Monaten veröffentlicht, so scheint es. Dort drüben sind noch Lebenszeichen. . . –