如何可视化Fortran(90或更高版本)源代码,例如使用Graphviz?
我参与了一个大型Fortran项目,其中包含大量源文件 我需要为这个项目作出贡献,而且我首先了解来源似乎是明智的 作为第一步,我想可视化各种源文件之间的相互依赖关系,即哪些源文件需要哪些模块。据我所知,其他语言都有自动方法,可以使用Graphviz生成图形 但是有人知道有什么软件可以为Fortran 90代码实现这一点吗 [由于到处都是令人痛苦的Fortran 77,搜索Internet以获取Fortran帮助是一件非常痛苦的事情,因为你最终会搜索Internet蜘蛛网。]如果你有钱的话,那就值得一看。如果你没有钱,但打算快速工作,那么你可以试着下载该软件 对于静态调用图,我从来没有找到像Understand这样有用的免费工具;很难找到任何免费的工具,更不用说有用的了。我自己也会写一本,但市场会很小:-( 对于动态调用图,请调查您的编译器选项。我使用“英特尔Fortran编译器”,它可以生成大量有关正在执行的程序的有用信息。TotalView调试器还可以可视化正在执行的程序的调用图。您还应查看是什么将GPROF调用“图”生成点文件。这是免费的好的 我还应该补充一点,虽然这不是我曾经使用过的东西,但它可能会有用。我推荐它,它可以从源代码自动生成文档(而且是免费的)。通常,您会在描述函数和变量的注释中添加一些标记。但是,只要您在配置文件中将如何可视化Fortran(90或更高版本)源代码,例如使用Graphviz?,graph,fortran,visualization,graphviz,Graph,Fortran,Visualization,Graphviz,我参与了一个大型Fortran项目,其中包含大量源文件 我需要为这个项目作出贡献,而且我首先了解来源似乎是明智的 作为第一步,我想可视化各种源文件之间的相互依赖关系,即哪些源文件需要哪些模块。据我所知,其他语言都有自动方法,可以使用Graphviz生成图形 但是有人知道有什么软件可以为Fortran 90代码实现这一点吗 [由于到处都是令人痛苦的Fortran 77,搜索Internet以获取Fortran帮助是一件非常痛苦的事情,因为你最终会搜索Internet蜘蛛网。]如果你有钱的话,那就值
EXTRACT\u ALL
设置为YES
,并让它为所有函数创建关系图,您就可以在未记录的源文件上运行doxygen(即,此函数调用这些函数,并由这些其他函数调用)
您需要安装GraphViz来生成图表,并在配置文件中将have_DOT
选项设置为YES
有关更多信息,请参阅doxygen文档,这是生成的输出示例
编辑:当然,对于Fortran,您应该在配置文件中将
OPTIMIZE\u for\u Fortran
选项设置为YES
。您可以在以下范围内使用callgrind
:
这将生成一个callgrind.out.[pid]
文件。如果编译程序时没有优化,并且带有调试标志,则效果最佳
然后,您有两个查看数据的选项:
谢谢你的回复。是的,对Fortran的理解似乎是一个不错的选择。这个方法对我来说很有效,它使用了可用的Ubuntu包,用于
doxygen
和graphviz
。克里斯提到的选项可以在Doxyfile
配置文件中找到。在doxyg中还有一个doxywizard
程序en ui
使事情变得非常简单的软件包我尝试了doxygen和Understand,我必须说doxygen的工作非常出色。在我使用的配置文件中:HAVE_DOT=YES,CALL_GRAPH=YES,CALLER_GRAPH=YES,最后提取_ALL=YES以包含子目录中的所有Fortran文件。@noot101这是doxygen gui
notdoxygen用户界面
,至少在现代ubuntu发行版上,对于刚接触doxygen的读者来说:这里有一个关于Chris解决方案的简要描述。可能是从这里复制的-不确定。
valgrind --tool=callgrind [your program]