我所说的“地图”是指我有一个“主”函数,它调用内部的许多其他程序,我希望能够看到哪个文件首先运行,第二个,第三个等等。基本上,我希望能够请参阅这个大型 OOP 设计程序(创建者没有为其制作 UML 类图)中的依赖项列表和顺序,以帮助破译代码。流行的 IDE 中肯定存在这样的功能吗?我主要处理 C++ 和 MATLAB,因此我更具体地关注这两个,但请列出您所知道的具有此功能的任何 IDE。我更喜欢可视化的东西,而不仅仅是运行调试器和断点一千次。
在 MATLAB 中,我不认为有内置的方法可以直观地执行此操作,但您可以使用以下命令从探查器中获取所需的信息:FunctionTable
由返回profile('info') https://mathworks.com/help/matlab/ref/profile.html#f8-618415-p.
表中的父/子关系本质上定义了一个有向图,如果将其转换为digraph
object.
例如,要映射程序执行kmeans
:
profile on
kmeans(rand(100,2),5);
p = profile('info');
t = struct2table(p.FunctionTable);
g = digraph(false(height(t)), t); % Create the graph with nodes and no edges
% Add the edges
for ii = 1:g.numnodes
for jj = 1:numel(g.Nodes.Children{ii})
g = g.addedge(ii, g.Nodes.Children{ii}(jj).Index);
end
end
plot(g,'NodeLabel',g.Nodes.FunctionName,'Layout','layered');
Produces:
每个函数来自的文件也可以通过FileName
领域的FunctionTable
因此,如果函数及其来源的文件之间的区别很重要,您可以使用此信息相应地对图表进行着色或简化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)