【问题标题】:Force return from function while debugging调试时强制从函数返回
【发布时间】:2017-03-10 20:58:59
【问题描述】:

我正在 MATLAB R2016a 中调试一个程序,并希望在未完成该函数的情况下从子函数返回。比如可以写成代码:

if(conditionMet)
  return;
end

如果满足条件,它将强制函数提前结束并在调用者代码中继续。在调试时,我想强制函数提前结束,就好像我遇到了return 命令一样。当我在调试模式下简单地输入return 时,似乎什么都没有发生。有没有办法强制函数提前结束并继续运行?

【问题讨论】:

  • 我认为您想在命令窗口中编写命令“return”以使该方法处于执行中间,并且认为这是不可能的。我认为@m7913d 提供的解决方案是唯一的选择。

标签: matlab debugging


【解决方案1】:

根据MATLAB CentralUndocumented Matlab,有一个未记录的函数feature() 可以像这样在您的情况下使用:

if feature('IsDebugMode')
   return;
end

【讨论】:

    【解决方案2】:

    我认为目前的 Matlab 版本一般是不可能的。

    如果您事先知道在调试时可能希望从函数返回的位置,则可以使用以下技巧。

    function yourFunction ()
        breakDebug = false;
        ...
        if breakDebug
            return; % location at which you may break your function during debugging
        end
        ...
        return;
    end
    

    通过在调试时设置breakDebug,程序将在您的下一个可能中断的位置中断。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-03
      • 2012-05-25
      • 1970-01-01
      相关资源
      最近更新 更多