在调试MATLAB时保持命令窗口的焦点

3
在MATLAB中,我通常使用dbstop if error来打开“自动”调试模式。当出现错误时,函数会进入调试模式,我可以在命令窗口查询变量并查看发生了什么。非常有用。
然而,当这种情况发生时,焦点会切换到编辑器。对我来说,这似乎是违反直觉的;我们处于调试模式,所以我想找出发生了什么事情,而不是看代码(我已经可以在相邻的窗口中看到代码)。我总是立即切换回命令窗口。
因此,我的第一个问题是:在这种情况下访问编辑器有意义吗?当我的脚本崩溃时,在编辑器中可以有用地做些什么?
其次,如果我想要的话,我能否更改MATLAB的默认行为以保持焦点在命令窗口中?
3个回答

4
对于你的第二个问题:
如果您使用MATLAB的桌面环境,只需在“调试”菜单中取消选中“调试时打开文件”。
如果您不使用图形化桌面的MATLAB,则可以通过修改matlab.prf文件来更改此首选项。此文件存储从GUI设置的首选项。上述菜单选项将执行下面描述的手动过程相同的更改。
注意:编辑此文件完全不受支持。请自行承担风险。
1.从MATLAB命令提示符中打开文件, >> edit([prefdir '/matlab.prf']) 或者使用MATLAB中的prefdir命令找到目录,然后在任何您喜欢的编辑器中打开该文件。
2.查找一行代码,其内容为 EditorGraphicalDebugging=Btrue 3.更改内容为 EditorGraphicalDebugging=Bfalse 如果该行不存在,请将其添加到文件中。
4.重新启动MATLAB。

为了简化这个过程,您可以使用Matlab的内部Java方法以编程方式设置此首选项:com.mathworks.services.Prefs.setBooleanPref('EditorGraphicalDebugging',false) - mbauman

3

您可以使用调用堆栈查看导致特定错误位置的原因。当然,您可以在命令窗口中使用dbupdbdown来执行此操作,但在编辑器中更容易。

此外,在引起崩溃的代码上下文中查看变量(及其值,使用鼠标悬停)远比仅查看静态值更有助于理解错误的根本原因。


2

我只能回答你的第一个问题。

编辑器中可以做的事情:

  • 鼠标悬停在变量上,会弹出一个“快速查看”窗口。
  • 在非调试模式下进行的任何操作,将函数视为脚本 - 运行一行代码(高亮 + F9),运行代码块等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接