我发现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
参数,如果你想做进一步的处理,将把这个信息放在稍微不同的格式中。