我有一个Lib和多个应用程序。我想收集有关从Apps向Lib的API进行函数调用的使用情况统计信息。 基本上我当前的流程是:
我目前正在使用以USR形式提供cross-referencing的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}]
}