我正在寻找一种工具来静态生成 Linux 内核的调用图(对于给定的内核配置)。生成的调用图应该是“完整的”,因为所有调用都包括在内,包括我们可以假设的潜在间接调用,在 Linux 内核的情况下,这些调用只能通过使用函数指针来完成。
例如,这可以通过分析函数指针类型来完成:这种方法会导致图中出现多余的边,但这对我来说没关系。
ncc似乎实现了这个想法,但是我没有成功地使它在 3.0 内核上工作。还有其他建议吗?
我猜这种方法也可能导致在使用函数指针强制转换的情况下丢失边缘,所以我也想知道这是否可能在 Linux 内核中。
附带说明一下,似乎还有其他工具能够对源代码进行语义分析以推断潜在的指针值,但是 AFAICT,它们都不是设计用于 Linux 内核等项目的。
任何帮助将非常感激。