64-битные инструменты, такие как BoundsChecker & Purify
На протяжении многих лет я использовал два отличных инструмента BoundsChecker и Purify, но разработчики этих приложений подвели меня, они больше не прилагают усилий для их поддержки или разработки. У нас есть корпоративные счета в обеих компаниях, и они оба говорят мне, что у них нет намерения выпускать версии для поддержки 64-битных приложений.
Может ли кто-нибудь рекомендовать альтернативные версии с открытым исходным кодом или коммерческие версии, которые поддерживают 64-разрядные собственные приложения С++/MFC?
Ответы
Ответ 1
Viva64 (http://www.viva64.com/viva64-tool/) инструмент обеспечивает обнаружение ошибок, типичных для 64-разрядных приложений Windows. Viva64 - это старинный анализатор кода C/С++, подобный lint. Viva64 интегрируется в среду Visual Studio 2005/2008 и предоставляет удобный интерфейс для тестирования ваших программных проектов.
Ответ 2
У Parasoft есть инструмент под названием Insure ++ (ссылка: http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure), в котором говорится, что он это сделает.
Я использовал Insure ++ для 32-разрядных и 64-разрядных приложений в Linux, и это сработало. Иногда это путалось, когда он пытался разобрать код шаблона /stl и упал бы.
Этот url говорит, что он работает на 32- и 64-битных окнах, удачи!
Ответ 3
BoundsChecker 9.01 теперь поддерживает VC2008 и x64 бит, наконец.
Ответ 4
insure ++ работает только при использовании кода. Я однажды попробовал. Для составления порядка 1000 строк кода потребовалось около 5 минут. Поскольку проект, который мне нужно было скомпилировать, был огромным, я быстро решил, что Insure ++ не будет работать.
Не говоря уже об их отчетности, или вывод из Insure ++ довольно архаичен. также штраф за выполнение во время исполнения был ужасным.
Примечание о boundschecker от numega/compuware/other_new_company: Не покупайте его. Он поддерживает только 32-разрядные приложения. Он НЕ выполняет 64-битные приложения. Однако он может быть установлен на 64-битной ОС. Я перестал использовать его несколько лет назад в нашем приложении. Я использую его на тестах CppUnit, хотя... иногда.
В общем, я полностью испытываю отвращение ко всем средствам утечки памяти. Все они не работают или просто блокируют ваше приложение при завершении работы.
Ответ 5
FYI: BoundsChecker 10.0 работает на Windows XP через Windows 7, как на 32, так и на 64-разрядных версиях. Он поддерживает WOW64-приложения, а также поддерживает Visual Studio 2010. На самом деле мы выпустили поддержку VS2010 в течение 30 дней после выпуска Microsoft.
Мы догоняем наше отставание. Мы очень поздно получали поддержку VS2005 и VS2008 (с BC 9.0, Fall 2008), но было множество причин, почему это произошло. Чудо состояло в том, что мы все поняли.
BoundsChecker 10.5, когда он выходит, должен иметь еще несколько полезных свойств. Оставайтесь с нами.
Раскрытие: я работаю для MicroFocus.
Ответ 6
Параллельный инспектор Intel (R) (http://software.intel.com/en-us/intel-parallel-inspector/) - это плагин для потоковой передачи и проверки памяти в Microsoft * Visual Studio; он поддерживает 32-битный и 64-разрядный C/С++ в Windows. Это коммерческое приложение с 30-дневной бесплатной оценкой.
Раскрытие информации: я работаю для Intel.
Ответ 7
Я использовал проверку границ и другие инструменты динамического анализа, а в то время как архитектура отличается от кода, который вы проверяете, - в теории вы могли бы проверять границы на любом бэкэнд, а результат был бы таким же - код либо выходит за пределы его границ, либо нет.
Единственные сложности устраняют более 4 ГБ пространства памяти, имея дело с фрагментами кода, которые невозможно перекрестно скомпилировать в 32-битную архитектуру (64-битные объектные файлы, для которых у вас нет источника и т.д.), и общие 64-разрядные проблемы с миграцией (код для конкретной платформы, например, проверка на 0xFFFFFFFF вместо -1)
Какие еще проблемы вы выполняете при проверке границ вашей программы? Вы не можете скомпилировать 32-разрядную версию?
Это не ваше идеальное решение, конечно, и нужно всегда проверять код, который они собираются запустить, но в этом случае у вас может не быть выбора, если вы не захотите выполнить свою собственную проверку границ (что хорошо идея в любом случае...).
-Adam
Ответ 8
я понимаю, что BC 9.0 будет поддерживать WOW64
Ответ 9
Верификатор приложения для x64 и x86 обнаруживает повреждение кучи
http://www.microsoft.com/download/en/details.aspx?id=20028
Ответ 10
От Поддержка IBM PurifyPlus для 64-разрядных версий Microsoft Windows:
Технот (FAQ)
Вопрос
Поддерживается ли IBM Rational PurifyPlus в 64-разрядных версиях Microsoft Windows?
Причина
Популярны 64-разрядные версии Microsoft Windows.
Ответ
Начиная с версии 7.0.1 iFix 003, PurifyPlus поддерживает тестирование 64-битных приложений в Windows.
Более подробную информацию о iFix 003 можно найти в следующем техническом документе IBM Rational PurifyPlus для Windows v7.0.1.0-003
Вы устанавливаете эту версию Purify и получаете запись "Очистить (для 64-разрядных приложений)" в меню "Пуск".