PurifyPlus - PurifyPlus

UNICOM 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 .unicomsi .com /produkty /purifyplus /

PurifyPlus je program pro ladění paměti, který používají vývojáři softwaru k detekci chyb přístupu k paměti v programech, zejména těch napsaných v jazyce C nebo C ++ . Původně byl napsán Reedem Hastingsem z Pure Software . Pure Software se později spojil s Atria Software a vytvořil Pure Atria Software, který na oplátku později získala společnost Rational Software , kterou zase získala společnost IBM , a poté se 31. prosince 2014 odprodala společnosti UNICOM Systems , Inc. Je funkčně podobná na jiné ladicí programy paměti, například Insure ++ , Valgrind a BoundsChecker .

Přehled

PurifyPlus umožňuje dynamické ověření, což je proces, při kterém program zjišťuje chyby, ke kterým dochází při spuštění programu, podobně jako debugger . Statická verifikace nebo statická analýza kódu naopak zahrnuje detekci chyb ve zdrojovém kódu, aniž byste jej museli kompilovat nebo spouštět, a to pouze objevováním logických nesrovnalostí. Typ kontroly pomocí C kompilátor je příkladem statické ověření.

Když je program propojen s PurifyPlus, opravený ověřovací kód je automaticky vložen do spustitelného souboru analýzou a přidáním do objektového kódu , včetně knihoven. Tímto způsobem, pokud dojde k chybě paměti, program vytiskne přesné umístění chyby, příslušnou adresu paměti a další relevantní informace. PurifyPlus také detekuje úniky paměti . Ve výchozím nastavení je zpráva o úniku generována při ukončení programu, ale lze ji také generovat voláním PurifyPlus API pro detekci úniku z instrumentované aplikace.

Chyby, které PurifyPlus zjistí, zahrnují čtení a zápis na hranici pole, pokus o přístup k nepřidělené paměti, uvolnění nealokované paměti (obvykle kvůli uvolnění stejné paměti podruhé) a také úniky paměti (přidělená paměť bez odkazu na ukazatel). Většina z těchto chyb není smrtelná (alespoň ne v místě chyby) a často je při pouhém spuštění programu nelze zjistit, kromě pozorování, že je něco špatně kvůli nesprávnému chování programu. PurifyPlus proto pomáhá tím, že tyto chyby detekuje a řekne programátorovi, kde přesně se vyskytují. Protože PurifyPlus funguje tak, že instrumentuje veškerý kód objektu , detekuje chyby, které se vyskytují uvnitř knihoven jiných výrobců nebo operačních systémů . Tyto chyby jsou často způsobeny tím, že programátor předává nesprávným argumentům volání knihoven, nebo nedorozuměním ohledně protokolů pro uvolnění datových struktur používaných knihovnami. Toto jsou často nejobtížnější chyby k nalezení a opravě.

Rozdíly od tradičních debuggerů

Schopnost detekovat nefatální chyby je hlavním rozdílem mezi PurifyPlus a podobnými programy od obvyklých debuggerů . Naproti tomu debuggery obecně umožňují programátorovi rychle najít zdroje závažných chyb, jako je například selhání programu kvůli dereferencingu nulového ukazatele , ale nepomáhají detekovat chyby bez fatální paměti. Ladicí programy jsou užitečné pro další věci, pro které PurifyPlus není určen, například pro procházení kódu po řádcích nebo ruční zkoumání paměti programu v konkrétním okamžiku spuštění. Jinými slovy, tyto nástroje se mohou navzájem doplňovat pro zkušeného vývojáře.

PurifyPlus také obsahuje další funkce, jako jsou vysoce výkonné hlídací body , které se obecně používají při používání ladicího programu na něčím kódu.

Stojí za zmínku, že používání PurifyPlus dává největší smysl v programovacích jazycích, které správu paměti nechávají na programátorovi. Proto například v jazycích Java , Lisp nebo Visual Basic automatická správa paměti snižuje výskyt jakýchkoli nevracení paměti . Tyto jazyky však mohou mít stále ú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 odhalování těchto druhů chyb.

Podporované platformy

Podporované platformy C/C ++
Operační systém Architektury procesorů Verze operačního systému Překladače
Solaris
Sun UltraSPARC Základna Solaris 11 až 11.2 Základna
Solaris 10 až U11
Sun C/C ++ 5,8 až 5,13
GNU gcc/g ++ 4,0 až 4,8
AMD64
Intel 64
Solaris 11 základna přes 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 až 6,6
RHEL 5 (Server/Desktop) základna 5.11
SLES 11 základna 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 až 6,6
RHEL 5 (Server/Desktop) základna 5.11
SLES 11 základna SP3
GNU gcc/g ++ 4.0 až 5.2
Intel icc 11.0 až 11.1
AIX
IBM POWER7 AIX 7.1 base through TL3
AIX 6.1 base through TL9
IBM XL C/C ++ 12.1
IBM XL C/C ++ 11.0
IBM XL C/C ++ 10.1
Okna
IBM POWER6 Základna AIX 6.1 až 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 base, Anniversary Edition
Microsoft Windows 8 base through 8.1
Microsoft Windows 7 base through SP1
Microsoft Windows Server 2016 Standard, Data Center
Microsoft Windows Server 2012 Foundation, Essential, Standard, Data Center
Microsoft Windows Server 2008 Enterprise, Standard, Data Center, base through SP2
Microsoft Windows Server 2008 R2 Foundation, Enterprise, Standard, Data Center, base through SP1
Visual Studio 2008 až 2015
Podporované platformy Java/.NET
Plošina Typ sběru dat Běhové prostředí
Okna
Sběr dat C/C ++ (nespravovaný kód) Microsoft Visual Studio 2008 až 2015
Sběr dat o pokrytí kódu Java IBM JRE 5 až 8
SUN JRE 1,5 až 1,8
Sběr dat .NET (spravovaný kód) .NET Framework 2.0 až 4.5 používaný s Microsoft Visual Studio 2008 až 2015

Viz také

Reference

externí odkazy