GCC mudflap (-fmudflap
) может выполнять проверку границ для C, но не может обрабатывать весь код C ++ по состоянию на середину 2012 года (например, std::vector
). Он был удален в GCC 4.9 в середине 2015 года, заменен Address Sanitizer. Варианты «грязевого крыла» остаются, но ничего не делают.
Имеется патч MIRO - M udflap I m, подтвержденный R eferent O bjects. См. домашнюю страницу для получения дополнительной информации. Также есть бумага об этом .
Я кратко попробовал MIRO. Кажется, это очень хорошо, но, возможно, не будет работать со 100% кода C ++. Я намерен использовать MIRO во время разработки, а затем отключить его (и использовать обычный компилятор) для выпуска. Если вы пишете свой собственный код, его будет довольно легко заставить работать с MIRO.