2

我想为 .cpp 文件中的特定函数生成调用图。我通过使用 AST Matcher 获得函数的 decl。然后,我将 decl 传递给 addToCallGraph 函数;

clang::CallGraph CG;    
CG.addToCallGraph(std::move(function_decl));

之后,我尝试打印调用图:

  std::string str;
  llvm::raw_string_ostream os(str);
  CG.print(os);
  std::cout<<os.str()<<std::endl;

但是,我发现结果并不完整。例如调用关系是A()->B();B()->C() 结果是:

Function: < root > calls: A B
  Function: A calls: B
  Function: B calls:

B 和 C 之间的关系尚未显示。

我的问题是,

1) addToCallGraph 是否完成了所有调用图的生成过程?

2)我们如何检查A,B和C之间的所有关系?

提前致谢!

4

0 回答 0