我有一个 Lib 和多个应用程序。我想从应用程序中收集有关对 Lib 的 API 的函数调用的使用统计信息。基本上我目前的流程是:
- 解析所有函数/方法的 Lib
- 以格式化的方式输出信息
- 使用该输出从应用程序收集统计信息。
我目前正在使用以 USR 形式提供交叉引用的 libclang API,因此我正在构建函数索引并在解析应用程序时使用它。问题是这个 API 是有限的,这就是我想迁移到 Libtooling 的原因。
我查看了 libtooling 的 API,但找不到类似的东西。所以我的问题是使用 Libtooling 实现“交叉引用”的最佳方法是什么。
一个例子是:
> lib.h
class Foo {
public:
void bar();
};
> app.cpp
#include "lib.h"
int main(void) {
Foo f;
f.bar();
return 0;
}
预期的输出将是一个 json 文件:
{
"name": "bar",
"location": { "file": "lib.h", "line": 5},
"references": [{"file": "app.cpp", "line": 8}]
}