Какие-либо инструменты статического анализа, которые помогают обнаруживать проблемы с процессором?

Наша команда много лет управляла кодовой базой на встроенном процессоре с прямым порядком байтов (10+). Как правило, мы не удосужились рассмотреть вопросы порядка байтов во время этой разработки и обслуживания этого встроенного кода.

Вскоре мы переместим эту кодовую базу с процессора с прямым порядком байтов на процессор с прямым порядком байтов.

Нам любопытно, если у кого-то есть опыт работы с каким-либо конкретным статическим анализом или другими инструментами, которые помогут с этим переходом. Мы нашли этот полезный документ от Intel, который поможет нам начать:

http://www.intel.com/design/intarch/papers/endian.pdf

Спасибо!

3 ответа

Колледж в Code Integrity Solutions, Карл Эк, недавно написал статью "Обнаружение проблем с порядком байтов с помощью инструментов статического анализа" для доктора Доббса: http://www.drdobbs.com/windows/226000073.

На самом деле я не упомянул никаких конкретных инструментов в своей статье. Это должно было дать читателю мысли о том, как подойти к проблеме. Общие правила в документе Intel хороши, однако они очень универсальны и, следовательно, могут упустить множество конкретных вещей, которые могут быть применены при пользовательских проверках для кодовой базы отдельного клиента и стандартных правил кодирования. Эти проверки в документе Intel (в основном) могут быть реализованы в Статическом анализе SDK Coverity и Checker Studio Klocwork. Я уверен, что DMS Semantic Designs был бы чрезвычайно эффективен в этом обнаружении:). Расширяемость до инструмента статического анализа очень важна: проблемы кодирования могут быть очень тонкими, и любое готовое обнаружение "из коробки" потенциально может быть очень шумным. Желательно также иметь анализ, чувствительный к потоку / пути, так как обработка с прямым порядком байтов может / часто защищена средствами защиты / условными выражениями, основанными на (возможно) статически анализируемых / обнаруживаемых условиях. --carl

Klocwork представила анализ Endian в своем последнем выпуске (раскрытие: я работаю там). Полный межпроцедурный анализ для обеспечения наличия точек трансформации при отправке / получении из / в сеть или хост. Технический технический документ, который объясняет это более подробно.

http://www.klocwork.com/resources/endian-deadlock-multicore-challenges/

Удачи! -Brendan

Другие вопросы по тегам