4

对于给定的方法(例如 Settings.cpp getSettingByName()),我想获得调用图的文本表示。我听说 doxygen 可以生成调用图的图像,我对文本输出更感兴趣。

例如,如果我给它“Settings.cpp getMethodByName”,它将返回:

Settings.cpp getSettingByName();
    SettingsWrapper.cpp getMaximumSpeed();
        ECU.cpp monitorSpeed();
            Operate.cpp runECU();
                Main.cpp run();
        CruiseControl.cpp accelerate();
            Operate.cpp runCruiseControl();
                Main.cpp run();
        Radio.cpp playApplauseThroughSpeakers();
            Operate.cpp runStereo();
                Main.cpp run(); 

这可能吗?

非常感谢,菲德尔

附言。不要对代码感到害怕,这只是一个例子。

4

2 回答 2

5

我不知道有任何预建的解决方案。

然而,Doxygen 实际上会通过为调用图构建一个 GraphViz 点文件来生成(图像)调用图。Dot 格式是原始文本并且非常简单,因此您可能会发现让 Doxygen 运行并自己解析生成的 .dot 文件最容易。

于 2012-08-10T07:47:35.720 回答
3

已经很晚了,但无论如何我还是要提一下。

对于 C 源文件,您绝对可以使用cflow。它将向您显示您提到的 C 文件的文本输出。

然而,不幸的是,当我尝试使用 C++ 时,输出几乎是垃圾。请记住,我没有彻底研究它的 C++ 特性,我只是想解析 C 文件。它有一个选项标志,--cpp尽管它获得了一个 C 预处理器。

于 2017-05-03T19:19:40.483 回答