Estoy buscando una herramienta para generar de forma estática un gráfico de llamadas del kernel de Linux (para una configuración de kernel determinada). El gráfico de llamadas generado debe ser "completo", en el sentido de que todas las llamadas están incluidas, incluidas las potenciales indirectas, que podemos suponer que solo se realizan mediante el uso de punteros de función en el caso del kernel de Linux.Generación de gráfico de llamada estática para el kernel de Linux
Por ejemplo, esto podría hacerse analizando los tipos de punteros de función: este enfoque daría lugar a bordes superfluos en el gráfico, pero eso está bien para mí.
ncc parece implementar esta idea, sin embargo, no tuve éxito en hacerlo funcionar en el kernel 3.0. ¿Cualquier otra sugerencia?
Supongo que este enfoque también podría dar lugar a que falten bordes en los casos en que se utilizan moldes de punteros de función, por lo que también me interesaría saber si esto es probable en el kernel de Linux.
Como nota al margen, parece que hay otras herramientas que son capaces de hacer análisis semántico de la fuente para inferir valores de potencial de puntero, pero AFAICT, ninguno de ellos es el diseño que se utilizará en un proyecto como el núcleo de Linux .
Cualquier ayuda sería muy apreciada.
¿No lograste que funcione? ¿Cuánto esfuerzo invirtió? En mi respuesta a continuación, analizamos un gran sistema. Nos llevó varios meses-hombre capturar de manera confiable las fuentes correctas, los datos de compilación y procesarlos.¿Crees que hacer esto para Linux debería ser mucho más rápido la primera vez que lo intentes? –
Bueno, simplemente seguí al pie de la letra el ejemplo de caso de uso para el kernel de Linux que se proporciona en la documentación de ncc. Esto resultó en un error que todavía estoy tratando de resolver. – addalbx
OK, entonces NCC supuestamente viene configurado para procesar Linux. Entonces tu tiempo debería ser mucho más corto ya que alguien más ha hecho todo este trabajo. Por supuesto, ese trabajo no es probable que sea estable; el kernal de Linux se mueve. ¿Han contactado a los constructores de NCC y les han preguntado sobre esto? –