Vij*_*jay 14 matlab dependencies code-analysis call-graph
我正在尝试为大约500个matlab src文件创建一个函数调用图.我无法找到任何可以帮助我对多个src文件执行相同操作的工具.
有人熟悉任何工具或插件吗?
如果没有任何此类工具,欢迎任何有关阅读6000行matlab代码而无需文档的建议.
我建议使用该depfun
函数构建一个调用图.有关更多信息,请访问http://www.mathworks.com/help/techdoc/ref/depfun.html.
特别是,我发现depfun
用'-toponly'
参数调用,然后迭代结果,是手工构建调用图的一种很好的方法.不幸的是,我无法访问使用此编写的任何代码.
我认为你的意思是你想要确切地看到你的代码是如何运行的 - 什么函数可以调用哪些子函数,何时以及运行的时间长短?
看看MATLAB Code Profiler.按如下方式执行代码:
>> profile on -history; MyCode; profile viewer
>> p = profile('info');
Run Code Online (Sandbox Code Playgroud)
p
包含功能历史记录,从我上面链接的相同帮助页面:
历史数据描述了在执行期间输入和退出的功能序列.该
profile
命令返回FunctionHistory
它返回的结构字段中的历史数据.历史数据是2×n阵列.第一行包含布尔值,其中0
表示进入函数并1
意味着退出函数.第二行标识其索引在FunctionTable
字段中输入或退出的函数.此示例[下面]读取历史数据并将其显示在MATLAB命令窗口中.
profile on -history
plot(magic(4));
p = profile('info');
for n = 1:size(p.FunctionHistory,2)
if p.FunctionHistory(1,n)==0
str = 'entering function: ';
else
str = 'exiting function: ';
end
disp([str p.FunctionTable(p.FunctionHistory(2,n)).FunctionName])
end
Run Code Online (Sandbox Code Playgroud)
您不一定需要像上面的示例那样显示入口和出口呼叫; 只需查看p.FunctionTable
并p.FunctionHistory
足以显示代码何时进入和退出功能.
归档时间: |
|
查看次数: |
6787 次 |
最近记录: |