c – 用于查找哪些函数最终可以调用(低级别)函数列表的工具

我有一个非常大的C程序,其中某些低级函数只能从某些上下文中调用或在采取特定预防措施时调用.我正在寻找一个工具,向我展示哪些低级函数被更高级别的函数调用.我希望在IDE中可以通过一些下拉或标记来显示它,可能在带注释的源输出中,但是比手动搜索调用图更简单的方法将有所帮助.

这是静态分析的问题,我没有得到剖析器的帮助.

我主要是在mac上运行,linux是可以的,如果某些内容仅在Windows上可用,那么我可以忍受它.

更新

仅仅使用调用图并不能更快地回答问题,“foo()是否可能导致调用x()y()或z()”. (或者我错过了一些关于调用图工具的东西,也许我需要编写一个遍历它的程序来获得解决方案?)

最佳答案 存在
Clang Static Analyzer使用LLVM,它也应该存在于OS X上.实际上我认为这是集成在Xcode中的.无论如何,存在GUI.

此外,还有几个LLVM passes,您可以在其中生成调用图,但我不确定这是否是您想要的.

点赞