PurifyPlus - PurifyPlus
Původní autoři | Čistý software |
---|---|
Vývojáři | UNICOM Systems, divize společnosti UNICOM Global |
Stabilní uvolnění | 7.5 / 26. ledna 2017 |
Operační systém | Windows, Linux, Solaris, AIX |
Typ | Debugger paměti |
Licence | Proprietární software |
webová stránka | teamblue |
PurifyPlus je debugger paměti program používaný software vývojáři k detekci chyb přístupu k paměti v programech, zejména v programech napsaných v C nebo C ++. Původně to napsal Reed Hastings z Čistý software.[1] Pure Software se později spojil s Atria Software a vytvořil Pure Atria Software, který později získal Rational Software, který zase získal IBM a poté se zbavil Systémy UNICOM, Inc. 31. prosince 2014. Je funkčně podobný ostatním ladicím programům paměti, jako je například Pojistit ++, Valgrind a BoundsChecker.
Přehled
PurifyPlus umožňuje dynamické ověřování, proces, při kterém program zjišťuje chyby, ke kterým dochází při jeho spuštění, podobně jako a debugger. Statické ověření nebo statická analýza kódu naopak zahrnuje detekci chyb v zdrojový kód aniž byste jej někdy kompilovali nebo spouštěli, pouhým objevováním logických nesrovnalostí. The kontrola typu podle a C překladač je příklad statického ověření.
Když je program propojeno s PurifyPlus se opravený ověřovací kód automaticky vloží do spustitelného souboru analýzou a přidáním do souboru kód objektu, včetně knihoven. Tímto způsobem, pokud dojde k chybě paměti, program vytiskne přesné místo chyby, příslušnou adresu paměti a další relevantní informace. PurifyPlus také detekuje úniky paměti. Ve výchozím nastavení se zpráva o úniku generuje při ukončení programu, ale lze ji také generovat voláním rozhraní API pro detekci úniku PurifyPlus z instrumentované aplikace.
Mezi chyby, které PurifyPlus zjistí, patří čtení a zápis hranic pole, pokus o přístup k nepřidělené paměti, uvolnění nepřidělené paměti (obvykle kvůli uvolnění stejné paměti podruhé), stejně jako úniky paměti (přidělená paměť bez odkazu na ukazatel). Většina z těchto chyb není fatální (alespoň ne v místě chyby) a často, když je spuštěn program, neexistuje způsob, jak je detekovat, kromě pozorování, že něco se mýlí kvůli nesprávnému chování programu. PurifyPlus proto pomáhá detekovat tyto chyby a sdělit programátorovi přesně, kde k nim dojde. Protože PurifyPlus funguje vybavením všech kód objektu, detekuje chyby, které se vyskytnou uvnitř třetí strany nebo operační systém knihovny. Tyto chyby jsou často způsobeny tím, že programátor předává nesprávné argumenty do volání knihovny, nebo nedorozuměním ohledně protokolů pro uvolnění datové struktury používané knihovnami. Často se jedná o nejobtížnější chyby, které lze najít a opravit.
Rozdíly od tradičních debuggerů
Schopnost detekovat nezávažné chyby je hlavním rozdílem mezi PurifyPlus a podobnými programy od obvyklých debuggery. Naproti tomu debuggery obecně umožňují programátorovi rychle najít zdroje fatálních chyb, například selhání programu v důsledku dereferencování nuly ukazatel, ale nepomáhají detekovat nefatální chyby paměti. Debuggery jsou užitečné pro jiné věci, pro které PurifyPlus není určen, například pro krokování kódu po řádku nebo prozkoumání paměti programu ručně v určitém okamžiku provedení. Jinými slovy, tyto nástroje se mohou pro zkušeného vývojáře navzájem doplňovat.
PurifyPlus zahrnuje také další funkce, například vysoký výkon sledovací body, které jsou obecně používány při použití debuggeru na něčí kód.
Stojí za zmínku, že používání PurifyPlus má největší smysl v programovacích jazycích, které ponechávají správu paměti na programátorovi. Proto v Jáva, Lisp nebo Visual Basic například automatická správa paměti snižuje výskyt jakýchkoli úniky paměti. Tyto jazyky však stále mohou mít úniky; zbytečné odkazy na objekty zabrání opětovnému přidělení paměti. IBM má produkt s názvem Rational Application Developer k odhalení těchto druhů chyb.
Podporované platformy
Operační systém | Architektury procesorů | Verze operačního systému | Překladače |
---|---|---|---|
Solaris | |||
Sun UltraSPARC | Solaris 11 základna do 11.2 Solaris 10 základna přes U11 | Sun C / C ++ 5.8 až 5.13 GNU gcc / g ++ 4,0 až 4,8 | |
AMD64 Intel 64 | Solaris 11 základna do 11.2 Solaris 10 U6 až U11 | Sun C / C ++ 5.8 až 5.10 GNU gcc / g ++ 4,0 až 4,8 | |
Linux | |||
Intel IA-32 | RHEL 6 (Server / Desktop) základna do 6.6 RHEL 5 (Server / Desktop) základna do 5.11 SLES 11 základna přes SP3 | GNU gcc / g ++ 4,0 až 5,2 Intel icc 11.0 až 11.1 | |
AMD64 Intel 64 | RHEL 6 (Server / Desktop) základna do 6.6 RHEL 5 (Server / Desktop) základna do 5.11 SLES 11 základna přes SP3 | GNU gcc / g ++ 4,0 až 5,2 Intel icc 11.0 až 11.1 | |
AIX | |||
IBM POWER7 | AIX 7.1 základna přes TL3 AIX 6.1 základna přes TL9 | IBM XL C / C ++ 12.1 IBM XL C / C ++ 11.0 IBM XL C / C ++ 10.1 | |
Okna | |||
IBM POWER6 | AIX 6.1 základna přes TL9 | IBM XL C / C ++ 12.1 IBM XL C / C ++ 11.0 IBM XL C / C ++ 10.1 | |
Okna | |||
Intel IA-32 Intel 64 AMD 64 | Microsoft Windows 10 základna, Anniversary Edition Microsoft Windows 8 základna do 8.1 Microsoft Windows 7 základna přes SP1 Microsoft Windows Server 2016 Standardní, datové centrum Microsoft Windows Server 2012 Foundation, Essential, Standard, Data Center Microsoft Windows Server 2008 Enterprise, Standard, Data Center, základna prostřednictvím SP2 Microsoft Windows Server 2008 R2 Foundation, Enterprise, Standard, Data Center, základna prostřednictvím SP1 | Vizuální studio 2008 až 2015 |
Plošina | Typ sběru dat | Runtime prostředí |
---|---|---|
Okna | ||
C / C ++ (nespravovaný kód) sběr dat | Microsoft Visual Studio 2008 až 2015 | |
Jáva sběr dat o pokrytí kódu | IBM JRE 5 až 8 SLUNCE JRE 1,5 až 1,8 | |
.SÍŤ (spravovaný kód) sběr dat | .NET Framework 2,0 až 4,5 používané s Microsoft Visual Studio 2008 až 2015 |
Viz také
Reference
- ^ Purify: rychlá detekce úniku paměti a chyby přístupu. Reed Hastings a Bob Joyce, technická konference Usenix Winter 1992.