ОчищениеПлюс


PurifyPlus — это программа отладки памяти , используемая разработчиками программного обеспечения для обнаружения ошибок доступа к памяти в программах, особенно написанных на C или C++ . Первоначально он был написан Ридом Хастингсом из Pure Software . [1] Позже Pure Software объединилась с Atria Software и образовала Pure Atria Software, которая, в свою очередь, позже была приобретена Rational Software , которая, в свою очередь, была приобретена IBM , а затем 31 декабря 2014 г. передана UNICOM Systems , Inc. функционально похож на другие отладчики памяти, такие как Insure++ , Valgrindи BoundsChecker .

PurifyPlus допускает динамическую проверку — процесс, с помощью которого программа обнаруживает ошибки, возникающие во время ее работы, подобно отладчику . Статическая верификация или статический анализ кода , напротив, включает в себя обнаружение ошибок в исходном коде без его компиляции или запуска, просто путем обнаружения логических несоответствий. Проверка типов компилятором C является примером статической проверки.

Когда программа связана с PurifyPlus, исправленный проверочный код автоматически вставляется в исполняемый файл путем синтаксического анализа и добавления к объектному коду , включая библиотеки. Таким образом, если произойдет ошибка памяти, программа распечатает точное местонахождение ошибки, задействованный адрес памяти и другую соответствующую информацию. PurifyPlus также обнаруживает утечки памяти . По умолчанию отчет об утечке создается при выходе из программы, но его также можно создать, вызвав API-интерфейс обнаружения утечек PurifyPlus из инструментированного приложения.

Ошибки, которые обнаруживает PurifyPlus, включают чтение и запись границ массива, попытки доступа к нераспределенной памяти, освобождение нераспределенной памяти (обычно из-за освобождения одной и той же памяти во второй раз), а также утечки памяти (выделенная память без ссылки на указатель). Большинство этих ошибок не являются фатальными (по крайней мере, не в месте ошибки), и часто при простом запуске программы их невозможно обнаружить, кроме как наблюдая, что что- то не так из-за некорректного поведения программы. Следовательно, PurifyPlus помогает обнаруживать эти ошибки и сообщать программисту, где именно они происходят. Поскольку PurifyPlus работает путем инструментирования всего объектного кода , он обнаруживает ошибки, возникающие внутри сторонних или операционных систем .библиотеки. Эти ошибки часто возникают из-за того, что программист передает неправильные аргументы в вызовы библиотек или из-за неправильного понимания протоколов освобождения структур данных, используемых библиотеками. Часто это самые трудные ошибки для поиска и исправления.

Возможность обнаружения нефатальных ошибок — главное отличие PurifyPlus и подобных программ от обычных отладчиков . Напротив, отладчики обычно только позволяют программисту быстро найти источники фатальных ошибок, таких как сбой программы из-за разыменования нулевого указателя , но не помогают обнаруживать нефатальные ошибки памяти. Отладчики полезны для других вещей, для которых PurifyPlus не предназначен, например, для пошагового выполнения кода строка за строкой или проверки памяти программы вручную в определенный момент выполнения. Другими словами, эти инструменты могут дополнять друг друга для опытного разработчика.

PurifyPlus также включает в себя другие функции, такие как высокопроизводительные точки наблюдения , которые обычно используются при использовании отладчика в коде.