Den*_*din 5 debugging matlab built-in function-call
我正在寻找一种方法来检测我的代码中调用特定函数的所有点.
一些例子:
sort,但它不是那么容易找到一个电话sort援引unique的例子.跟踪从特定函数到特定(内置)函数的所有潜在(in)直接函数调用的最佳方法是什么.
我不完全理解你的用例,但我想你想要的大部分信息都可以使用 获得dbstack,它为你提供了调用某个函数的所有父函数的调用堆栈。我认为最简单的方法是重载像这样的内置函数(我尝试重载min):
function varargout = min(varargin)
% print info before function call
disp('Wrapped function called with inputs:')
disp(varargin)
[stack,I] = dbstack();
disp('Call stack:')
for i=1:length(stack)
fprintf('level %i: called from line %i in file %s\n', ...
i, stack(i).line, stack(i).file);
end
% call original function
[varargout{1:nargout}] = builtin('min', varargin{:});
% print info after function call
disp('Result of wrapped function:')
disp(varargout)
Run Code Online (Sandbox Code Playgroud)
我试图测试这个,但不幸的是我无法让它工作,matlab继续使用原来的函数,即使在玩了很多之后addpath。不知道我在那里做错了什么,但我希望这能让你开始......
| 归档时间: |
|
| 查看次数: |
177 次 |
| 最近记录: |