matlab - 如果出错,请在 dbstop 期间阻止 Matlab 进入内置函数

标签 matlab debugging

在 Matlab 中工作时,我经常使用 dbstop error。大部分时间,错误会导致在内置 [m-file] 函数内部抛出错误,然后导致 Matlab 停止执行并打开文件。但是,在内置文件内部进行调试几乎毫无帮助,因此这最终会扰乱我的工作流程。是否有一种方法可以进行设置,以便 Matlab 退出调试器中的内置文件(从不打开它),让我留在函数调用中?

最佳答案

虽然我从来没有找到正确解决这个问题的方法,但很容易想出一个解决方法:

  1. 创建一个包含以下内容的脚本:

    S = dbstack();
    
    file_paths  = cellfun(@which, {S.file}, 'UniformOutput', false);
    builtins    = ~cellfun('isempty', strfind(file_paths, matlabroot()));
    stack_depth = find(~builtins, 1, 'first');
    
    for ii = 1:stack_depth-1
        dbup(); end
    
  2. 将它保存在对您有意义的地方,并放置一个 shortcut to it in the MATLAB toolbar .

然后,每当出现此问题时,您只需单击您的小快捷方式,它就会自动将您带到调试堆栈中的第一个非内置函数。

关于matlab - 如果出错,请在 dbstop 期间阻止 Matlab 进入内置函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41447887/

相关文章:

Matlab KNN分类共识

类文件夹和命名空间中的类方法的 Matlab 代码完成

java - 调试 Java 8 过滤器

matlab - 在 MATLAB 中对顺时针多边形点进行排序

matlab - 在 Matlab GUI GUIDE 中更改工具栏图标

c++ - QT 运行但 QImages 不显示在发布版本中

javascript - 在 Facebook 中调试 JavaScript (FBJS)

.net - .NET 调试期间是否可以控制程序流程?

c# - 用于从控制台应用程序打印调试信息的 Console.Writeline() 替代方法?

matlab - 在 MATLAB 中是否有 'self' 来引用自己的结构?