Может ли addToCallGraph сделать все для меня, чтобы сгенерировать граф вызовов?

Я хочу сгенерировать граф вызовов для конкретной функции в файле.cpp. Я получаю функцию decl с помощью AST Matcher. Затем я передаю 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?

Заранее спасибо!

0 ответов

Другие вопросы по тегам