我发现this example看起来好像它输出了我想要的C++。如何在xcode项目中实现objective-c代码?
我看到有人提到doxygen能够创建调用图,但我找不到示例。
(我想更好地了解克朗,但很难开始……)

最佳答案

当然。有几个技巧你需要理解,但也不算太糟。
首先,您需要一个兼容版本的opt,因为它不随llvm apple附带。我是从麦克波特买的:

port install llvm-3.0

然后你需要编译你的文件。制定这些参数有时会有点痛苦。最简单的方法是让XCODEL构建它,然后进入日志并剪切并粘贴巨型构建线。我以前可以手工破解这些,但我太懒了…
取出最后的-o参数(在编译行结束时方便),并替换:
-S -emit-llvm -o - | opt-mp-3.0 -analyze -dot-callgraph

然后,如另一个例子所示:
$ dot -Tpng -ocallgraph.png callgraph.dot

请记住,在objc中有一些函数被频繁调用,而您几乎从不关心这些函数。尤其是,几乎所有以objc_开头的内容。幸运的是,点格式是一个非常简单的文本文件,编写后处理脚本可以很容易地删掉你不想要的东西。
还有一个-print-callgraph参数,如果你想做进一步的处理,将把这个信息放在稍微不同的格式中。

10-08 08:07