Современный эквивалент BoundsChecker для Visual Studio 2008
В VS6 раз был BoundsChecker от Numega. Я понимаю, что сейчас он мертв, пожалуйста, поправьте меня, если я ошибаюсь. Каковы надежные альтернативы? Желательно бесплатно или хотя бы с пробной версией.
7 ответов
IMO Возможно, лучше написать собственный менеджер памяти (тот, который поддерживает новые /delete/malloc/free wrappers). Создайте новую / удаляемую оболочку, которая блокирует неиспользуемую / освобожденную память с помощью VirtualProtect (да, я знаю, что блок выделения по умолчанию должен иметь размер PAGE_SIZE в байтах, и вам потребуется много оперативной памяти даже для небольшого приложения, но это единственный недостаток). Если вы используете Linux, возможно, у него есть альтернатива VirtualProtect. В этом случае любой заурядный доступ за границу вызовет нарушение прав доступа и будет легко отследить. Также по возможности используйте контейнеры stl - они также предлагают проверку границ.
Этот совет основан на опыте - я работал с ужасно написанным огромным (несколько мегабайт кода) старым программным обеспечением, у которого были утечки памяти, доступ к уже освобожденной памяти из нескольких потоков и так далее. Я провел неделю, пробуя различные утилиты (cleany, devpartner studio, aqtime и т. Д.), И хотя некоторые из них предоставляли массу информации, ни одна из них не была действительно полезной. С настраиваемым управлением памятью проблемы были устранены за 2 дня (включая запись менеджера памяти).
Если это не работает для вас, попробуйте compuware devpartner studio - если она все еще доступна где-либо.
BoundsChecker, конечно, не умер. "В основном он мертв, что означает" частично жив " (извините, не могу устоять перед цитатой из" Чудо-Макса "из" Принцессы-невесты "). Серьезно, BoundsChecker жив и процветает под управлением Micro Focus. Мы выпускаем DevPartner Studio с поддержкой 64-битных приложений в BoundsChecker, профилировщиках производительности и покрытия.NET/native/mixed, а также профилировщике памяти.NET и целостного процессора / сети / диска. Планируется, что DPS 10.5 выйдет 4 февраля 2011 года. Релиз 10.5 легко интегрируется с Visual Studio 2005, 2008 и 2010, но вы все равно можете использовать автономную BC для запуска Active Check с двоичными файлами VC6 и VC2003, если потребуется, с некоторым успехом. Бесстыдная вилка: я работаю в команде DevPartner. Я перебиваю SO заметками, в которых объявляется об обновленной актуальности DPS 10.5 для C++ и.NET для разработчиков приложений на платформе x64. С новой моделью ценообразования, в которой вы можете лицензировать только BC или только профилировщик производительности, DPS должен быть гораздо более доступным, чем когда-либо при поддержке Compuware и высоких ценах. Отказ от ответственности: это мои собственные мнения, не обязательно санкционированные Micro Focus.
Boundschecker не умер. Я использую это с Visual Studio 2008.
Они просто сменили владельцев (Compuware на MicroFocus, на Borland), теперь он называется DevPartner для Visual C++ BoundsChecker Suite
Проверь это:
http://www.borland.com/Products/Software-Testing/Automated-Testing/Devpartner-Studio
Bounds Checker раньше был моим вторым любимым инструментом после хорошего отладчика. Я нашел это невероятно полезным. Тогда он стал настолько дорогим, что я больше не мог оправдать его покупку. Если вы хотите знать, почему вряд ли кто-то вообще знает об этом замечательном инструменте, вот ваш ответ.
Я также работаю в Micro Focus и сейчас являюсь главным специалистом по внутренним компонентам среды выполнения BoundsChecker (DPS Error Detection). Продукт определенно не умер, но главное, что поддерживает его сейчас, это фанатическая лояльность некоторых людей. Хотя верность только заходит так далеко. Мы продолжаем иметь клиентов. Если бы продукт вообще не продавался, компания давно бы уволила нас всех и закончила бы этот продукт.
В любом случае, для тех из вас, у кого есть вопросы или сообщения об ошибках, попробуйте наш форум по адресу http://community.microfocus.com/.
Purify (Plus) http://www-01.ibm.com/software/awdtools/purifyplus/
BoundsChecker был приобретен несколько раз и сейчас находится здесь: http://microfocus.com/products/DevPartner/BoundsCheckerSuite.asp
Другой вариант - Rational Purify (теперь принадлежит IBM): http://www-01.ibm.com/software/awdtools/purify/
Оба эти продукта работают, вроде. Но ни одна из них не является серебряной пулей и приносит с собой нетривиальный объем работы по извлечению из них полезной информации. YMMV