文档

调试MATLAB程序

要调试MATLAB®使用编辑器/调试器图形化地编程。或者,您可以在“命令”窗口中使用调试函数。这两种方法是可以互换的。

你开始调试之前,请确保您的程序保存和程序,在你的搜索路径或当前文件夹调用存在的任何文件。

  • 如果在编辑器中运行未保存更改的文件,则会在运行前自动保存该文件。

  • 如果运行在命令窗口中未保存的更改一个文件,然后MATLAB软件运行的文件保存的版本。因此,你没有看到更改的结果。

设置断点

设置断点暂停MATLAB文件的执行,因此您可以在您认为问题可能是检查值或变量。您可以设置使用编辑器断点,在命令窗口,或两者使用的功能。

有三种不同类型的断点:标准断点、条件断点和错误断点。添加一个标准断点在编辑器中,要设置断点可执行线点击断点胡同。该断点胡同是在编辑器的左侧的窄列,行号的右侧。在断点胡同 - ()执行行由破折号表示。例如,单击断点胡同旁线2中的代码下面在该行添加一个断点。

如果一个可执行语句跨越多行,您可以在该语句的每一行设置一个断点,即使其他行没有 - 在断点胡同(DASH)。例如,在此代码。您可以设置在所有四个行断点:

有关不同类型的断点的详细信息,请参见设置断点

运行文件

设置断点后,从命令窗口或编辑器运行文件。运行该文件产生以下结果:

  • 按钮变为暂停按钮。

  • 在命令窗口中提示变为K > >这表明MATLAB在调试模式,并且键盘是在控制。

  • MATLAB在程序的第一个断点处暂停。在编辑器中,位于断点右侧的绿色箭头表示暂停。程序不会执行发生暂停的那一行,直到它恢复运行。例如,调试器在程序执行之前暂停X =那些(1,10);

  • MATLAB显示在当前工作空间函数调用栈,在编辑选项卡中调试部分。

    如果您使用调试在命令窗口中的功能,使用dbstack查看函数调用栈。

有关使用函数调用栈的更多信息,请参阅选择工作区

暂停正在运行的文件

如果要在程序运行时暂停其执行,转到编辑选项卡,然后单击暂停按钮。MATLAB在下一个可执行行暂停执行暂停按钮变为继续按钮。要继续执行,按继续按钮。

如果你想检查一个长期运行的程序的进度,确保按预期它正在运行暂停是非常有用的。

注意

点击暂停按钮会引起MATLAB在自己的程序文件之外的文件暂停。按继续按钮恢复正常的执行,而不改变文件的结果。

发现并解决问题

当您的代码暂停时,您可以查看或更改变量的值,或者您可以修改代码。

在调试时查看或更改变量

在调试时查看变量的值,以查看一行代码是否产生了预期的结果。为此,将鼠标指针放置到变量的左侧。变量的当前值出现在数据提示中。

数据提示停留在视图,直到您移动指针。如果你有麻烦的数据提示出现,单击包含变量的行,然后移到旁边的变量的指针。欲了解更多信息,请参阅检查在调试值

调试时,看看新的值会产生预期的效果,你可以改变一个变量的值。随着节目暂停,分配一个新的值在命令窗口中的变量,Workspace浏览器,或变量编辑器。然后,继续运行或步进通过程序。

例如,这里MATLAB暂停内对于循环,n = 2的

  • 类型n = 7;在命令行中更改的当前值ñ2点到7点。

  • 继续运行的下一行代码。

MATLAB运行的代码行x(n) = 2 * x(n-1);N = 7

代码的修改部分,而调试

您可以在调试以测试可能的修复时修改一段代码,而不必保存更改。通常,在退出调试后修改MATLAB文件,然后保存修改后的文件并运行该文件是一种很好的实践。否则,您可能会得到意想不到的结果。但是,在某些情况下,您需要在调试期间进行试验。

要修改的程序在调试时:

  1. 当代码暂停时,修改文件中尚未运行的部分。

    断点变成灰色,表明它们是无效的。

  2. 选择在此MATLAB暂停,用鼠标右键单击线后,所有的代码,然后选择评估选择从上下文菜单中。

在代码评估完成后,停止调试并保存或撤销在继续调试过程之前所做的任何更改。

遍历文件

在调试时,您可以逐步通过MATLAB文件,在您要检查值的点暂停。

此表介绍了可调试操作,你可以用它来执行它们的不同方法。

描述

工具栏按钮

功能替代

继续文件的执行,直至在那里光标被定位在线路。也可在上下文菜单上。

运行到光标

没有一个

执行该文件的当前行。

dbstep

执行文件的当前行,如果该行是对另一个函数的调用,则执行该函数。

介入;涉足

dbstep

恢复文件的执行,直到完成,或者直到遇到另一个断点。

继续

dbcont

步进后,运行调用的函数或局部功能的其余部分,离开调用的函数,并暂停。

步出

dbstep

暂停调试模式。

暂停

没有一个

退出调试模式。

退出调试

dbquit

结束调试会话

确定问题后,通过转到编辑选项卡并单击退出调试。如果要更改和保存文件,或者要在MATLAB中运行其他程序,则必须结束调试会话。

在您退出调试后,编辑器中显示的暂停指示器不再出现,而正常显示>>提示重新出现在命令窗口中发生的K > >。您不再可以访问调用堆栈。

如果MATLAB软件在断点暂停时变得无响应,请按下Ctrl + c返回到MATLAB提示符。

相关的话题

这个话题有用吗?