我想为.cpp文件中的特定函数生成调用图。 我通过使用AST Matcher获得函数的decl。然后,我将decl传递给addToCallGraph函数;
// Ajax...
dataType: "json",
success: function(result) {
if (result.length > 0) {
var productTableHTML = '<table>';
$.each(response, function (key,value) {
productTableHTML +=
'<tr><td>' + key + '</td><td>' + value + '</td></tr>';
});
productTableHTML += '</table>';
$("#products_table").html( productTableHTML );
}
}
之后,我尝试打印调用图:
clang::CallGraph CG;
CG.addToCallGraph(std::move(function_decl));
然而,我发现结果并不完整。 例如,呼叫关系是A() - &gt; B(); B() - &GT; C() 结果是:
std::string str;
llvm::raw_string_ostream os(str);
CG.print(os);
std::cout<<os.str()<<std::endl;
B和C之间的关系尚未显示。
我的问题是,
1)addToCallGraph是否完成了所有调用图生成过程?
2)我们如何检查A,B和C之间的所有关系?
提前致谢!