ОчиститьПлюс
Оригинальный автор(ы) | Чистое программное обеспечение |
---|---|
Разработчик(и) | UNICOM Systems, подразделение UNICOM Global |
Стабильная версия | 8.1 / 1 августа 2021 г. |
Операционная система | Винда, Линукс, Солярис |
Тип | Отладчик памяти |
Лицензия | Собственное программное обеспечение |
Веб-сайт | www |
PurifyPlus — это программа отладчика памяти, используемая разработчиками программного обеспечения для обнаружения ошибок доступа к памяти в программах, особенно написанных на C или C++ . Первоначально он был написан Ридом Гастингсом из Pure Software . [1] Позже Pure Software объединилась с Atria Software и образовала Pure Atria Software, которая, в свою очередь, позже была приобретена компанией Rational Software , которая, в свою очередь, была приобретена IBM , а затем продана UNICOM Systems , Inc. 31 декабря 2014 года. Функционально она аналогична для других отладчиков памяти, таких как Insure++ , Valgrind и BoundsChecker .
Обзор
[ редактировать ]PurifyPlus обеспечивает динамическую проверку — процесс, с помощью которого программа обнаруживает ошибки, возникающие во время ее работы, подобно отладчику . Статическая проверка или статический анализ кода , напротив, предполагает обнаружение ошибок в исходном коде без его компиляции или запуска, просто путем обнаружения логических несоответствий. Проверка типов компилятором C является примером статической проверки.
Когда программа связана с PurifyPlus, исправленный код проверки автоматически вставляется в исполняемый файл путем анализа и добавления в объектный код , включая библиотеки. Таким образом, если произойдет ошибка памяти, программа распечатает точное место ошибки, адрес памяти и другую соответствующую информацию. PurifyPlus также обнаруживает утечки памяти . По умолчанию отчет об утечке создается при выходе из программы, но его также можно создать путем вызова API обнаружения утечек PurifyPlus из инструментированного приложения.
Ошибки, которые обнаруживает PurifyPlus, включают чтение и запись границ массива, попытки доступа к нераспределенной памяти, освобождение нераспределенной памяти (обычно из-за освобождения одной и той же памяти во второй раз), а также утечки памяти (выделенная память без ссылки на указатель). Большинство этих ошибок не являются фатальными (по крайней мере, не в месте возникновения ошибки), и зачастую при простом запуске программы их невозможно обнаружить, кроме как наблюдая, что что-то не так из-за некорректного поведения программы. Следовательно, PurifyPlus помогает обнаруживать эти ошибки и сообщать программисту, где именно они происходят. Поскольку PurifyPlus работает путем инструментирования всего объектного кода , он обнаруживает ошибки, возникающие внутри сторонних библиотек или библиотек операционной системы . Эти ошибки часто вызваны тем, что программист передает неверные аргументы вызовам библиотеки или недопониманием протоколов освобождения структур данных , используемых библиотеками. Зачастую это самые трудные для поиска и исправления ошибки.
Отличия от традиционных отладчиков
[ редактировать ]Возможность обнаружения нефатальных ошибок — главное отличие PurifyPlus от аналогичных программ от обычных отладчиков . Напротив, отладчики обычно позволяют программисту только быстро найти источники фатальных ошибок, таких как сбой программы из-за разыменования нулевого указателя , но не помогают обнаружить нефатальные ошибки памяти. Отладчики полезны и для других задач, для которых PurifyPlus не предназначен, например, для пошагового выполнения кода построчно или проверки памяти программы вручную в определенный момент выполнения. Другими словами, эти инструменты могут дополнять друг друга для опытного разработчика.
PurifyPlus также включает в себя другие функции, такие как высокопроизводительные точки наблюдения , которые обычно используются при использовании отладчика для кода.
Стоит отметить, что использование PurifyPlus имеет наибольший смысл в языках программирования, которые оставляют управление памятью программисту. , в Java , Lisp или Visual Basic Следовательно, например автоматическое управление памятью снижает возникновение любых утечек памяти . Однако в этих языках все еще могут быть утечки; ненужные ссылки на объекты предотвратят перераспределение памяти. У IBM есть продукт под названием Rational Application Developer, позволяющий обнаруживать подобные ошибки.
Поддерживаемые платформы
[ редактировать ]Поддерживаемые платформы C/C++
[ редактировать ]Операционная система | Архитектуры процессоров | Версии операционной системы | Составители |
---|---|---|---|
Солярис | |||
Солнце УльтраСПАРК | Solaris 11 до 11.4 База Solaris 10 до U11 База | Sun C/C++ 5.8–5.15 GNU gcc/g++ 4 и 5 | |
AMD64 Интел 64 | Solaris 11 до 11.4 База Солярис 10 от U6 до U11 | Sun C/C++ 5.8–5.15 GNU gcc/g++ с 4 по 8 | |
Линукс | |||
Интел ИА-32 | Базовая версия RHEL 8 (Сервер/Настольный компьютер) до версии 8.3 Базовая версия RHEL 7 (Сервер/Настольный компьютер) до версии 7.9 Базовая версия RHEL 6 (Сервер/Настольный компьютер) до версии 6.10 База SLES 12 до SP4 Базовая версия SLES 11 до SP3 | GNU gcc/g++ с 4 по 8 Intel icc 11.0–11.1 | |
AMD64 Интел 64 | Базовая версия RHEL 8 (Сервер/Настольный компьютер) до версии 8.3 Базовая версия RHEL 7 (Сервер/Настольный компьютер) до версии 7.9 Базовая версия RHEL 6 (Сервер/Настольный компьютер) до версии 6.10 База SLES 12 до SP4 Базовая версия SLES 11 до SP3 | GNU gcc/g++ с 4 по 8 Intel icc 11.0–11.1 | |
Окна | |||
Интел ИА-32 Интел 64 64 драма РА | Базовая версия Microsoft Windows 10 до 21H1 Microsoft Windows от базовой версии 8 до 8.1 Microsoft Windows Server 2019 Standard, Центр обработки данных Microsoft Windows Server 2016 Standard, Центр обработки данных Microsoft Windows Server 2012 Foundation, Essential, Standard, Data Center Microsoft Windows Server 2008 Enterprise, Standard, Data Center, от базовой версии до SP2 Microsoft Windows Server 2008 R2 Foundation, Enterprise, Standard, Data Center, от базовой версии до SP1 | Visual Studio 2010–2019 гг. |
Поддерживаемые платформы Java/.NET
[ редактировать ]Платформа | Тип сбора данных | Среда выполнения |
---|---|---|
Окна | ||
Сбор данных C/C++ (неуправляемый код) | Microsoft Visual Studio 2010–2019 гг. | |
Java Сбор данных о покрытии кода | IBM JRE с 5 по 8 SUN JRE 1,5–1,8 | |
Сбор данных .NET (управляемый код) | .NET Framework 3.0–4.5, используемый с Microsoft Visual Studio 2010–2019. |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Очистка: быстрое обнаружение утечек памяти и ошибок доступа. Рид Гастингс и Боб Джойс, техническая конференция Usenix, зима 1992 г.