假设main.m调用func1.m,func1.m在func1.m的三个部分调用func2.m
假设我在func2.m中打印了一些变量,因为有一些错误。
假设我打印
var2 = 3
var2 = 5
var2 = -1
我只是在谈论一个例子。但是如果程序非常复杂,那么因为func1.m在三个点调用func2.m,我可能会对func1.m的哪一部分在func2.m生成var2 = 3感到困惑
所以,如果我可以打印"行号"当前行(包括上层函数的行号),那么它对调试非常有用。
有这样的事吗?
答案 0 :(得分:1)
您可以使用dbstack
来确定调用此函数的调用函数的哪一行。您可以在调用堆栈中专门查找func1
。
stack = dbstack();
[~, ind] = ismember({stack.name}, 'func1');
disp(stack(ind).line)
话虽如此,设置条件断点然后使用dbup
和dbdown
或MATLAB工作区浏览器导航到父级和子级工作区更好远弄清楚出了什么问题。