2011-04-28 78 views
3

通常在MATLAB中我打开'自动'调试dbstop if error。当发生错误时,该函数进入调试模式,并且我能够在命令窗口中查询变量并查看到底发生了什么。很有用。调试时在命令窗口中保持焦点MATLAB

但是,如果发生这种情况,焦点切换到编辑器。对我来说,这似乎是反直觉的;我们处于调试模式,所以我想知道发生了什么,而不是看代码(我可以在相邻窗口中看到)。我总是立即回到命令窗口。

所以我的第一个问题是:在这里访问编辑器有什么意义吗?我可以用做什么,当我的脚本崩溃时,在编辑器中?

第二:如果我想,我可以改变MATLAB的默认行为,以保持焦点在命令窗口?

回答

3

你的第二个问题:

如果你使用MATLAB的桌面环境,在“调试”菜单中的“调试时,打开文件”只需取消。

如果您在没有图形桌面的情况下使用MATLAB,您可以通过修改matlab.prf文件来更改此首选项。该文件存储从GUI设置的首选项。上述菜单选项与以下所述的手动过程相同。

注意:编辑此文件完全不受支持。这样做自担风险。

  1. 打开从MATLAB命令提示符的文件,

    >> edit([prefdir '/matlab.prf'])

    或者使用prefdir命令在MATLAB中找到目录,然后打开你喜欢的任何编辑器中的文件。

  2. 搜索这样一行

    EditorGraphicalDebugging=Btrue

  3. 更改它读取

    EditorGraphicalDebugging=Bfalse

    如果该行不存在,将其添加到文件中。

  4. 重新启动MATLAB。

+0

为了简化一点,可以用Matlab的内部Java方法以编程方式设置此首:'com.mathworks.services.Prefs.setBooleanPref(“EditorGraphicalDebugging”,虚假)' – 2013-09-16 17:35:02

2

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

东西,你可以在编辑器中做的:

  • 鼠标悬停时一个变量,它会弹出一个“快速查看”窗口。
  • 任何行动,你可以做的时候不是在调试模式,治疗功能的脚本 - 运行线(高亮+ F9),运行的代码块等
3

您可以使用调用堆栈看看你是如何来到特定的错误位置。当然,您可以在命令窗口中使用dbupdbdown进行此操作,但在编辑器中更容易。

另外,在导致崩溃的代码的上下文中查看变量(以及它们的值,使用鼠标悬停)对于理解错误的根本原因要比仅查看静态值要好得多。