The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Новая версия среды разработки Arduino IDE 2.3 "
Отправлено Аноним, 14-Фев-24 17:45 
> Разве компилер C++ может генерить несуществующие опкоды? Сомневаюсь. Или ты прям в
> машинных кодах прогаешь?

Ubsan - довольно низкоуровнево интегрируется в компилер, и таки - может! Он вообще инструментирует поток команд, добавляя проверки! При том на автомате - програмеру делать ничего не надо, инструментация математики будет сделана компилером.

В полной версии он ловит ряд забавных вещей, типа некоторых выходов за пределы массивов, левых поползновений с типами, переполнения integer'ов и проч. И при обнаружении факапа он вырубает прогу и кидает нехилый стектрейс. В gcc/clang это нечто типа -fsanitize=undefined.

Но у него есть как минимум в GCC и лайтовый режим, спецом для МК, когда вместо полновесного рантайма он в инструментированом коде просто провоцирует Bad Opcode и дальше fault handler сам разбирается что это за фигня. Так оно уже подъемно для МК получается. На cortex M работает, фимрвар конечно несколько жирнее и тормознее из-за проверок, но - разница процентов 30 по размеру кода. Скорость - зависит от алго, может существенно просесть, а может и пофиг быть.

p.s. gcc также может САМ добавить вызовы функций memset/memcpy/memmove между прочим. И это документировано. Для freestanding окружение требование такое - предоставить эту троицу. А как вы думали он допустим один struct другому вообще присваивает?!

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру