为了账号安全,请及时绑定邮箱和手机立即绑定

停止并继续从调试器执行吗?

停止并继续从调试器执行吗?

慕神8447489 2019-11-19 14:42:59
有没有什么办法可以像ctrl + c一样从调试器中停止执行matlab程序,但是又可以继续执行(就像您在c#中那样)?如果不是,除了尝试在matlab代码中抢先设置断点或dbstop语句以外,还有什么更好的解决方法?我希望能够中断长时间运行的仿真以查看当前状态,然后继续仿真。我当前正在使用/考虑的两个选项是代码中的dbstop命令(或(条件)断点)。缺点是有时我不想停止模拟几个小时,有时只想在几秒钟后停止模拟(而且我不一定事先知道),这种方法不能很好地工作:如果我将中断条件设置为每5分钟中断一次,那么我就无法让matlab在没有互动的情况下运行数小时。如果将条件设置为较高,则必须等待太长时间才能使条件达到。包含代码以每隔几秒钟/分钟保存一次工作空间并将该工作空间导入到另一个Matlab实例中。缺点是这是一个很大的麻烦,也不一定允许我使用保存的工作区的状态恢复仿真,然后逐步执行代码进行几次迭代。我希望有比2个更好的解决方案。谢谢您的任何建议!编辑:我想我要做的是编写简单的matlab函数,该函数每次迭代都会检查环境变量或磁盘上的文件,如果我在此文件或环境中设置了标志,则会调用dbstop。通过这种方式,我可以通过编辑文件来控制何时(如果需要,可以从多个matlab外部)命中断点。凌乱,但应该可以。
查看完整描述

3 回答

?
潇潇雨雨

TA贡献1833条经验 获得超4个赞

随着R2016a的发布,您只需在代码编辑器中单击“暂停”按钮,它将立即停止。键盘快捷键是Ctrl + F5。


要在程序运行时暂停其执行,请在“编辑器”选项卡中,单击“暂停”按钮。MATLAB在下一个可执行行*处暂停执行。


代码运行时,“开始”按钮将变为暂停状态:


此版本的另一个变化是可以在运行时添加/删除断点。以前,您显然无法做到这一点。


查看完整回答
反对 回复 2019-11-19
?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

您可以在MATLAB编辑器中设置条件断点。您也可以使用DBSTOP来执行此操作。例如,这将在文件myFcn的第20行设置一个条件断点,当循环变量i是500的倍数时,它将停止执行:


dbstop in myFcn.m at 20 if rem(i,500) == 0

然后,您可以在检查某些变量后继续执行。


查看完整回答
反对 回复 2019-11-19
  • 3 回答
  • 0 关注
  • 579 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信