Doxygen - 如何在不生成图形的情况下生成文本调用关系结果

Doxygen - How to generate a textual call relationship result without generating the graph

我正在使用 Doxygen 获取 c/c++ 项目的整个函数调用图。我设置 HAVE_DOT = YESCALL_GRAPH = YES。它可以帮助获得正确的结果,但是对于一个大项目,使用点生成 PNG 将花费很多时间。我想获得没有 PNG 的文本结果以避免耗时。但我不知道如何配置。在不生成PNG的情况下获得.DOT个文件将是完美的。

对于图形表示,doxygen 具有 CALL_GRAPHCALLER_GRAPH 以及 HAVE_DOT 配置设置。

对于文本表示,有设置:REFERENCED_BY_RELATIONREFERENCES_RELATION,这些设置会产生每个函数的结果。

来自 OP 的评论:

But it just helps me to know what entities are called in a function. I can not get the whole call graph for the project.

What I want is to get the functions call graph in textual graph like .DOT without generating PNG.

doxygen 不直接支持此功能。有一个完成某事的卑鄙技巧:

  • HAVE_DOT设置为YES
  • CALL_GRAPH设置为NO
  • 添加到你想要关系的函数:\callgraph
  • 平均技巧:
    • DOT_CLEANUP设置为NO
    • DOT_PATH设置为dot可执行文件所在的路径
    • DOT_GRAPH_MAX_NODES设置为合适的值
    • MAX_DOT_GRAPH_DEPTH设置为合适的值

这将生成一个 dot 文件(在例如 html 目录中),其中包含请求的关系。

你可以看看下面的手册: http://www.doxygen.nl/manual/diagrams.html

设置 CALL_GRAPH = NO 可能有效,因为它不会创建图形表示。

看看手册中\hidecallgraph\callgraph的用法。