Существует собственный API, который построен поверх C++. Таким образом, он использует все возможности C++, а затем имеет свои собственные API. Существуют некоторые API, которые работают точно так же, как C++ API (например, для malloc есть Stralloc), эти API предоставляются по соображениям производительности.Разработка инструмента для анализа статического исходного кода для собственного API?
Хотя для C++ существует множество статических анализаторов кода, мы не можем использовать ни один из них. Необходимо иметь статический анализатор кода, который может быть запущен на коде с проприетарными API.
Я хотел бы знать, как начать разработку анализатора кода. Возможно, он не должен быть очень ориентированным на функции, как те, которые доступны для C++. Я хочу начать с основных вещей, таких как сообщение неиспользуемых переменных, переполнение буфера, утечки памяти.
Любое руководство будет оценено по достоинству.
[UPDATE] Я нашел следующий вопрос, который я искал, только разница в том, что вместо Java моя озабоченность связана с проприетарными API-интерфейсами. Пока у меня есть несколько хороших ответов, но я бы очень хотел узнать больше от людей, которые прошли через такое развитие.
Introduction to Static Analysis
Но, безусловно, такой профайлер будет путать с вещами, такими как boost :: bind, сигналы и другие конструкции, которые добавляют необязательные парадигмы к C++. – EFraim
Как я уже упоминал, существуют API, которые используются вместо C++ API. Например, вместо использования free() используется API Strfree(), который точно такой же, как и free(), но используется по соображениям производительности. Поэтому любой обычный анализатор C++ не может это распознать. – user32262