主要内容

调试MATLAB代码文件

因为R2021b。替换调试一个MATLAB程序(R2021a)和在编辑器现场调试代码(R2021a)。

你在MATLAB可以诊断问题®调试代码交互代码文件的编辑器,编辑器或生活在命令窗口中以编程方式使用调试功能。

这里有几种方法来调试代码:

  • 显示输出通过移除分号。

  • 运行代码到一个特定的行,点击运行到这里暂停按钮

  • 进入函数和脚本而暂停通过单击按钮

  • 添加断点文件启用暂停在特定行当您运行您的代码。

在开始调试之前,为了避免意想不到的结果,保存您的代码文件并确保代码文件和搜索路径上的任何文件他们叫存在或在当前文件夹。MATLAB处理未保存的更改以不同的方式取决于你在哪里调试:

  • 编辑器——如果一个文件包含未保存的更改,MATLAB运行之前保存的文件。

  • 生活编辑——MATLAB运行所有文件的改变,是否保存。

  • 命令窗口,如果文件包含未保存的更改,MATLAB运行文件的保存的版本。你看不到你的改变的结果。

显示输出

一种方法确定一个问题发生在MATLAB代码文件显示输出。显示的输出线,把分号从这一行的结束。在编辑器中,MATLAB在命令窗口中显示输出。在现场编辑器中,MATLAB显示输出的行代码创建它。

例如,假设你有一个脚本调用plotRand.m情节一个向量随机数据,画一条水平线在情节的意思。

n = 50;r =兰德(n, 1);情节(r) m =意味着(r);持有情节([0 n] [m m])标题(随机的意思是统一的数据”)

显示的输出兰德函数在两行,删除分号结束的时候。MATLAB显示的值r在命令窗口中。

命令窗口显示调用plotRand紧随其后产生的输出函数,r的值

在生活的编辑器中,MATLAB显示的值r两行。

plotRand住脚本删除分号结束的行两个和由此产生的输出,r的值,显示在右边

调试使用跑到这里

探索在工作区中所有变量的状态在特定的点在你的代码,代码文件,然后暂停运行。运行代码到指定的行,然后暂停,点击run按钮左边的线。如果选中的行不能达成,MATLAB继续运行直到到达文件的末尾或遇到一个断点。

当调试,运行到这里按钮成为这里的继续按钮。函数和类,运行到指定的行,然后暂停只能在调试时使用这里的继续按钮。R2021a和以前的版本中,运行到光标位置和暂停调试时,去编辑器光标按钮选项卡,然后单击Run

例如,单击Run按钮左边的两个plotRand.m。MATLAB运行plotRand.m从两线之前,暂停运行。

plotRand脚本的运行到这里按钮显示在左边框,行号线两旁边

MATLAB停顿时,多变化:

  • 运行按钮编辑器住编辑器选项卡更改继续按钮。

  • 命令窗口中的提示修改K > >表明MATLAB是在调试模式下,键盘控制。

  • MATLAB显示的线暂停使用绿色箭头和绿色高亮显示。

    plotRand脚本和一个绿色的箭头和绿色高亮显示两行,表明MATLAB在两行是停了下来

提示

这是一个好的做法,以避免修改一个文件而MATLAB是停了下来。变化,而MATLAB停下来不跑,直到MATLAB完成运行代码和代码重新运行。

MATLAB的线暂停不运行,直到你继续运行代码。继续运行代码,单击继续按钮。MATLAB继续运行该文件,直到它到达文件的末尾或断点。你也可以在这里点击继续按钮左边的代码行,你想继续运行。

继续运行的代码逐行,编辑器住编辑器选项卡上,单击一步。MATLAB执行当前行,停了下来,下一行的停顿。

plotRand脚本和一个绿色的箭头和绿色高亮显示三行,表明MATLAB在三行是停了下来

调试的时候查看变量值

把一个变量的值在MATLAB停顿了一下,将您的鼠标停留在变量中。变量的当前值出现在一个数据提示。视图中的数据提示保持直到你移动光标。禁用数据提示,去视图选项卡并单击Datatips按钮。

plotRand脚本暂停在两行数据提示显示变量的值n

您还可以查看变量的值通过键入命令窗口中的变量名。例如,查看变量的值n、类型n并按输入。命令窗口显示变量名及其价值。在当前工作区中查看所有变量,使用工作空间浏览器。

有关更多信息,请参见检查值在调试

暂停运行的文件

您可以暂停长期运行的代码运行时检查进展和确保它是按预期运行的。暂停运行代码,去编辑器住编辑器选项卡并单击暂停按钮。MATLAB停顿在下次执行行,暂停按钮更改继续按钮。继续运行代码,按下继续按钮。

请注意

单击暂停按钮可以使MATLAB暂停在您自己的代码以外的文件。

步进功能

在调试时,您可以进入称为文件,暂停在点你想检查值。进入一个文件,点击步骤按钮直接向左边的函数或脚本,你想进入。MATLAB显示按钮只有一行包含调用另一个函数或脚本。介入后,单击走出按钮顶部的文件运行调用函数的其余部分,离开被调用的函数,然后暂停。

默认情况下,一步按钮只显示用户定义函数和脚本。显示所有功能的按钮和脚本,在选项卡,环境部分中,点击首选项。然后,选择MATLAB>编辑/调试器,在调试节中,设置按钮显示上下文一步选项总是。不要显示按钮,设置按钮显示上下文一步选项从来没有

或者,您可以一步的功能,调试通过一步走出按钮上编辑器住编辑器选项卡。这些按钮不尊敬按钮显示上下文一步偏好和总是步骤的定义和MathWorks®功能。

函数调用栈

当你进入一个调用的函数或者文件,MATLAB的函数列表显示在当前行暂停之前执行。的列表,也被称为函数调用栈,顶部的显示文件和显示功能,从左边第一个调用脚本或函数,右边和结束与当前脚本或MATLAB的函数暂停。

函数调用栈plotRand显示plotRand第一称为脚本,意味着当前函数

对于每一个函数的函数调用栈,有一个相应的工作区。工作区包含变量创建在MATLAB或导入的数据文件或其他程序。变量赋值通过命令窗口或工作区创建通过使用脚本属于基地。您创建的变量在函数属于他们自己的工作区中。

您可以检查变量的值在当前工作区中通过选择不同的工作区。有关更多信息,请参见检查值在调试

添加断点并运行代码

如果有行代码在你的文件,你想暂停在每次运行您的代码,添加断点的行。您可以添加断点交互地使用编辑器,编辑器中生活,在命令窗口中使用函数编程方式,或两者兼而有之。

有三种类型的断点:标准,条件和错误。添加一个标准的断点在编辑器或生活编辑器中,单击左边的灰色区域的可执行的线你想要设置断点。例如,单击下一行三个领域plotRand.m在这条线添加断点。

在三行plotRand脚本和一个红色的断点

运行该文件时,MATLAB停顿在断点的行代码表示。MATLAB的线暂停不运行,直到你继续运行您的代码。

例如,与plotRand.m文件在编辑器中打开,单击运行按钮编辑器选项卡。MATLAB运行plotRand.m从三线之前,暂停运行。

MATLAB停顿时,多变化:

  • 运行按钮编辑器住编辑器选项卡更改继续按钮。

  • 命令窗口中的提示修改K > >表明MATLAB是在调试模式下,键盘控制。

  • MATLAB显示的线暂停使用绿色箭头和绿色高亮显示。

    plotRand脚本在三行断点和绿色箭头和绿色高亮显示三行,表明MATLAB在三行是停了下来

提示

这是一个好的做法,以避免修改一个文件而MATLAB是停了下来。变化,而MATLAB停下来不跑到MATLAB运行代码和代码完成后重新运行。

继续运行代码,单击继续按钮。MATLAB继续运行该文件,直到它到达文件的末尾或断点。继续运行的代码逐行,编辑器住编辑器选项卡上,单击一步。MATLAB执行当前行,停顿了一下,然后停顿下一行。

关于不同类型的断点的更多信息以及如何设置,清晰,和禁用它们,看到设置断点

结束调试会话

你确定一个问题后,去结束调试会话编辑器住编辑器选项卡并单击停止。调试结束后,正常> >提示在命令窗口重新出现的地方K > >提示。你不再可以访问函数调用栈。

为了避免混淆,确保结束调试会话每次你完成调试。如果你更改一个文件并将其保存在调试,MATLAB结束调试会话。如果MATLAB变得反应迟钝的停顿,出版社Ctrl + C调试结束。

通过使用键盘快捷键或功能调试

你可以使用键盘快捷键来执行大部分的调试操作或使用在命令窗口功能。此表描述了相关调试操作和键盘快捷键和功能,您可以使用它们来执行它们。

行动 描述 键盘快捷键 函数

继续

继续运行文件直到到达文件的末尾或直到遇到另一个断点。

F5

dbcont

一步

运行当前的代码行。

F10

(Shift +命令+ OmacOS系统)

dbstep

一步

当前运行的代码行,如果一行包含调用另一个函数,进入该函数。

(Shift + + I命令macOS系统)

dbstep

走出

介入后,运行调用函数的其余部分,离开被调用的函数,然后暂停。

Shift +季

(命令+ Shift + UmacOS系统)

dbstep

停止

结束调试会话。

Shift + F5

dbquit

设置断点

在当前行设置一个断点,如果不存在断点。

F12

dbstop

清晰的断点

在当前行清除断点。

F12

dbclear

相关的话题