Коллекция примеров 64-битных ошибок в реальных программах
Статический анализатор кода для C/C++/C++11
Статья представляет собой наиболее полную коллекцию примеров 64-битных ошибок на языках Си и Си++. Статья ориентирована на разработчиков Windows-приложений, использующих Visual C++, но будет полезна и более широкой аудитории.
Наша компания ООО Системы программной верификации занимается разработкой специализированного статического анализатора Viva64 выявляющего в коде приложений на языке Си/Си++. В ходе этой работы наша коллекция примеров 64-битных дефектов постоянно пополняется, и мы решили собрать в этой статье наиболее интересные на наш взгляд ошибки. В статье приводятся примеры как взятые непосредственно из кода реальных приложений, так и составленные синтетически на основе реального кода, так как в нем они слишком растянуты.
Статья только демонстрирует различные виды 64-битных ошибок и не описывает методов их обнаружения и профилактики. Вы можете подробно познакомиться с методами диагностики и исправления дефектов в 64-битных программах, обратившись к следующим ресурсам:
Также вы можете познакомиться с демонстрационной версией инструмента , в состав которой входит статический анализатор кода Viva64, выявляющий практически все описанные в статье ошибки. Демонстрационная версия для скачивания.
Пример 1. Переполнение буфера
memset( Abcd, 0, sizeof(Abcd));
source
Комментариев нет:
Отправить комментарий