【问题标题】:Keep focus in command window when debugging MATLAB调试 MATLAB 时在命令窗口中保持焦点
【发布时间】:2011-04-28 14:12:35
【问题描述】:

在 MATLAB 中,我经常使用 dbstop if error 打开“自动”调试。当发生错误时,函数进入调试模式,我可以在命令窗口中查询变量并查看到底发生了什么。很有用。

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

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

其次:如果我愿意,我可以更改 MATLAB 的默认行为以将焦点保持在命令窗口中吗?

【问题讨论】:

    标签: debugging matlab ide


    【解决方案1】:

    关于你的第二个问题:

    如果您使用 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)
    【解决方案2】:

    您可以使用调用堆栈来查看您是如何到达特定错误位置的。当然,您可以在命令窗口中为此使用dbupdbdown,但在编辑器中要容易得多。

    此外,在导致崩溃的代码上下文中查看变量(及其值,使用鼠标悬停)比仅查看静态值更能更好地了解错误的根本原因。

    【讨论】:

      【解决方案3】:

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

      您可以在编辑器中执行的操作:

      • 鼠标悬停一个变量,会弹出一个“快速查看”窗口。
      • 您可以在不处于调试模式时执行的任何操作,将函数视为脚本 - 运行一行(突出显示 + F9)、运行代码块等。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-10-21
        • 2016-10-17
        • 1970-01-01
        • 2018-03-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多