Статическая генерация графа вызовов для ядра Linux

Я ищу инструмент для статической генерации графа вызовов ядра Linux (для заданной конфигурации ядра). Сгенерированный граф вызовов должен быть "полным", в том смысле, что все вызовы включены, включая потенциальные косвенные, которые, как мы можем предположить, выполняются только через использование указателей функций в случае ядра Linux.

Например, это можно сделать, анализируя типы указателей функций: такой подход приведет к появлению лишних ребер в графе, но для меня это нормально.

ncc, похоже, реализует эту идею, однако мне не удалось заставить ее работать на ядре 3.0. Есть другие предложения?

Я предполагаю, что этот подход также может привести к отсутствию краев в случаях, когда используются приведения указателей функций, поэтому мне было бы интересно узнать, возможно ли это в ядре Linux.

В качестве примечания, кажется, есть и другие инструменты, способные выполнять семантический анализ исходного текста для вывода потенциальных значений указателей, но, AFAICT, ни один из них не предназначен для использования в таком проекте, как ядро Linux.

Любая помощь будет очень признательна.

16
задан addalbx 27 February 2012 в 19:18
поделиться