我发现this example看起来像输出我想要的C ++。如何在Xcode项目中为Objective-C代码完成?
我看到提到Doxygen能够创建一个调用图,但我找不到一个例子。
(我想更好地了解铿锵声,但很难开始......)
答案 0 :(得分:12)
绝对。你需要了解一些技巧,但这并不算太糟糕。
首先,您需要opt
的兼容版本,因为它没有附带LLVM Apple产品。我从macports那里得到了我的:
port install llvm-3.0
然后你需要编译你的文件。计算参数有时会有点痛苦。最简单的方法是让Xcode构建它,然后转到日志并剪切并粘贴巨型构建线。我曾经能够手工破解这些,但我太懒了......
取出最后一个-o
参数(方便地在编译行的末尾),并替换:
-S -emit-llvm -o - | opt-mp-3.0 -analyze -dot-callgraph
然后,如在另一个例子中那样:
$ dot -Tpng -ocallgraph.png callgraph.dot
请记住,在ObjC中有一些被称为很多的功能,您几乎从不关心这些功能。特别是几乎所有以objc_
开头的内容。幸运的是,DOT格式是一个非常简单的文本文件,编写后处理脚本以删除你不想要的内容非常容易。
还有一个-print-callgraph
参数,如果您想进一步处理,它会以稍微不同的格式输出这些信息。