Хотя splint
определенно аккуратен, я думаю, что усилия, необходимые для его использования в исходных кодах ядра Linux, вероятно, больше, чем он мог бы вернуть.
Однако разработчики ядра имеют свой собственный инструмент sparse
длявыполняя некоторые подобные проверки и уже глубоко интегрировала его использование в исходные коды ядра.Интеграция его в ваши источники тоже должна казаться довольно естественной, поскольку она уже есть во всем исходном коде ядра.Подробности об использовании sparse
.
см. В Documentation/sparse.txt
. Существует коммерческий проект Coverity , который иногда сканирует многие «важные» проекты с открытым исходным кодом на наличие проблем.Они обнаружили сотни, если не тысячи ошибок в исходниках ядра Linux с помощью своего инструмента.(Это радостная история о том, что они рекламируют свой продукт, правительство США получает огромную кучу чрезвычайно важных проверенных кодов, авторы с открытым исходным кодом получают бесплатные отчеты об ошибках, а пользователи с открытым исходным кодом получают преимущества от бесплатных обзоров кода. Победа в четырех направлениях!)
Стоит ли вам приобретать экспертные знания Coverity - это другой вопрос, но интеграция с sparse
даст вам некоторые преимущества инструментов статической проверки кода без лицензионных сборов.