主要内容GydF4y2Ba

在活动编辑器中调试代码GydF4y2Ba

要在实时脚本或函数中诊断问题,请在实时编辑器中调试代码。在Live编辑器中调试有几种方法:GydF4y2Ba

  • 通过删除分号显示输出。GydF4y2Ba

  • 命令运行到特定的代码行并使用GydF4y2Ba运行到这里按钮。GydF4y2Ba

  • 暂停使用时暂停函数和脚本GydF4y2Ba步入按钮。GydF4y2Ba

  • 将断点添加到您的文件中以在运行时在特定行中暂停。GydF4y2Ba

在GydF4y2BaMATLABGydF4y2Ba®GydF4y2Ba在线™GydF4y2Ba,在编辑器中调试匹配Live Editor行为。有关在已安装的MATLAB版本的编辑器中调试的更多信息,请参见GydF4y2Ba调试Matlab程序GydF4y2Ba.GydF4y2Ba

显示输出GydF4y2Ba

在实时脚本或函数中确定出现问题的简单方法是显示输出。要显示一行的输出,请从该行的末尾删除半冒号。Live Editor将每个输出显示使用创建的代码行,使其易于确定出现问题的位置。GydF4y2Ba

例如,假设您有一个名为脚本GydF4y2BaplotRand.mlxGydF4y2Ba这绘制了随机数据的向量,并在平均值上绘制绘图上的水平线。GydF4y2Ba

显示输出GydF4y2Ba兰特GydF4y2Ba函数在第2行,删除行尾的分号。若要在实时编辑器中显示不可见的行号,请转到GydF4y2Ba视图GydF4y2Ba标签并按GydF4y2Ba行号GydF4y2Ba按钮。MATLAB显示值GydF4y2BaR.GydF4y2Ba.GydF4y2Ba

调试使用GydF4y2Ba跑到这里GydF4y2Ba

如果想要显示单个变量的状态,那么显示输出是很有用的。要探索工作空间中所有变量的状态,请运行您的活动脚本,然后在运行指定的代码行之前暂停。GydF4y2Ba

要运行到指定的代码行,然后暂停,请单击此处的runGydF4y2Ba按钮到左侧。如果无法达到所选行,则MATLAB继续运行,直到达到文件的末尾或遇到断点。调试时持续到此处按钮仅在实时功能中可用。GydF4y2Ba

例如,单击GydF4y2Ba第2行左边的按钮GydF4y2BaplotRand.mlxGydF4y2Ba.Matlab跑步GydF4y2BaplotRand.mlxGydF4y2Ba从第1行开始,在运行第2行之前暂停。GydF4y2Ba

当MATLAB暂停时,GydF4y2Ba跑步GydF4y2Ba按钮在GydF4y2Ba直播编辑GydF4y2Ba标签更改为aGydF4y2Ba继续GydF4y2Ba按钮。实时编辑器通过突出显示绿色线来指示MATLAB暂停的行。突出显示的行直到MATLAB恢复运行后才运行。GydF4y2Ba

小费GydF4y2Ba

避免在Matlab暂停时避免修改文件是一个很好的做法。在MATLAB暂停时所做的更改不会运行,直到MATLAB完成运行代码,代码重新运行。GydF4y2Ba

要继续运行代码,请单击“GydF4y2Ba继续GydF4y2Ba按钮。MATLAB继续运行文件,直到它到达文件的末尾或断点。您还可以单击GydF4y2Ba要继续运行到的代码行左边的按钮。GydF4y2Ba

继续运行代码行 - 逐行GydF4y2Ba直播编辑GydF4y2Ba选项卡,单击GydF4y2Ba一步GydF4y2Ba.MATLAB执行暂停的当前行和下一行的暂停。GydF4y2Ba

你也可以通过前往光标跑到线上GydF4y2Ba直播编辑GydF4y2Ba选项卡,选择GydF4y2Ba一步GydF4y2Ba然后选择GydF4y2Ba跑到游标GydF4y2Ba.GydF4y2Ba

调试时查看变量值GydF4y2Ba

当MATLAB暂停时,要查看变量的值,将鼠标指针悬停在变量上。变量的当前值出现在数据提示中。在移动指针之前,数据提示一直在视图中。若要禁用数据提示,请进入GydF4y2Ba视图GydF4y2Ba标签并按GydF4y2Ba数据特征GydF4y2Ba按钮。GydF4y2Ba

您还可以通过在命令窗口中键入变量名称来查看变量的值。例如,要查看变量的值GydF4y2BaN.GydF4y2Ba, 类型GydF4y2BaN.GydF4y2Ba并按GydF4y2Ba进入GydF4y2Ba.命令窗口显示变量名称及其值。要在当前工作区中查看所有变量,请使用工作区浏览器。GydF4y2Ba

暂停运行文件GydF4y2Ba

要暂停正在运行的程序,请转到GydF4y2Ba直播编辑GydF4y2Ba标签并单击GydF4y2Ba暂停GydF4y2Ba按钮。Matlab停在下一个可执行线,和GydF4y2Ba暂停GydF4y2Ba按钮更改为aGydF4y2Ba继续GydF4y2Ba按钮。要继续运行,请按GydF4y2Ba继续GydF4y2Ba按钮。GydF4y2Ba

如果要检查长期运行程序的进度,暂停是有用的,以确保它按预期运行。GydF4y2Ba

笔记GydF4y2Ba

点击暂停按钮可以使MATLAB暂停在您自己的程序文件之外的文件。按下GydF4y2Ba继续GydF4y2Ba按钮继续运行,而不改变文件的结果。GydF4y2Ba

结束调试会话GydF4y2Ba

在确定问题之后,通过转到GydF4y2Ba直播编辑GydF4y2Ba选项卡并单击GydF4y2Ba停止GydF4y2Ba.为避免混淆,请务必每次完成调试时结束您的调试会话。保存时,Live Editor会自动结束调试会话。GydF4y2Ba

进入职能GydF4y2Ba

在调试时,您可以进入被调用的文件,在需要检查值的地方暂停。要进入文件,请单击GydF4y2Ba按钮直接向左侧的函数左侧进入。你也可以使用GydF4y2Ba季GydF4y2Ba键进入一个函数。Live Editor只在该行包含对另一个函数的调用时显示该按钮。GydF4y2Ba

默认情况下,GydF4y2Ba仅按钮仅显示用户定义的函数和脚本。显示MathWorks的按钮GydF4y2Ba®GydF4y2Ba功能也一样,上GydF4y2Ba首页GydF4y2Ba标签,在GydF4y2Ba环境GydF4y2Ba部分,点击GydF4y2Ba首选项GydF4y2Ba.然后,选择GydF4y2BaMATLABGydF4y2Ba>GydF4y2Ba编辑/调试器GydF4y2Ba,在GydF4y2Ba在Live编辑器中调试GydF4y2Ba部分,明确GydF4y2Ba对于用户定义的函数,只显示“Step in”按钮GydF4y2Ba.GydF4y2Ba

踩后,单击GydF4y2Ba文件顶部的按钮运行剩下的函数,留下被叫函数,然后暂停。你也可以使用GydF4y2BaShift + F11GydF4y2Ba走出函数。GydF4y2Ba

你也可以通过GydF4y2Ba直播编辑GydF4y2Ba选项卡,选择GydF4y2Ba一步GydF4y2Ba然后选择GydF4y2Ba介入;涉足GydF4y2Ba要么GydF4y2Ba走出GydF4y2Ba.这些钮扣不符合GydF4y2Ba对于用户定义的函数,只显示“Step in”按钮GydF4y2Ba偏好和始终逐步进出用户定义的和MathWorks函数。GydF4y2Ba

检查工作区中的变量GydF4y2Ba

当您进入名为函数或文件时,Live Editor会显示MATLAB在当前行暂停之前执行的函数MATLAB列表。该列表显示在文件的顶部,并按顺序显示函数,从左侧启动第一个名为脚本或函数,然后在右侧结尾使用Matlab暂停的当前脚本或函数。此列表称为GydF4y2Ba函数调用堆栈GydF4y2Ba.GydF4y2Ba

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

要在调试期间检查变量,必须首先选择它的工作区。函数调用堆栈中选定的函数指示当前工作区。要选择或更改工作区,请单击函数调用堆栈中的函数。MATLAB在Live Editor中打开函数,并将当前工作空间更改为函数的工作空间。GydF4y2Ba

选择工作空间后,您可以使用workspace浏览器或Live Editor中的数据提示查看其中变量的值。GydF4y2Ba

添加断点并运行GydF4y2Ba

如果您的文件中有一行代码,则每次运行时要暂停,请在这些行中添加断点。要在Live Editor中添加断点,请单击要设置断点的可执行行上的灰色区域。例如,单击此代码中第3行旁边的区域以在该行添加断点。你也可以使用GydF4y2BaF12GydF4y2Ba键设置断点。GydF4y2Ba

运行文件时,MATLAB暂停在断点指示的代码行。GydF4y2Ba

清晰的断点GydF4y2Ba

当您关闭并重新打开一个文件时,将保存断点。GydF4y2Ba

要清除断点,请右键单击断点并选择GydF4y2Ba清晰的断点GydF4y2Ba从上下文菜单。你也可以使用GydF4y2BaF12GydF4y2Ba关键清除断点。GydF4y2Ba

要清除文件中的所有断点,请选择GydF4y2Ba清除所有文件GydF4y2Ba.清除所有断点GydF4y2Ba全部GydF4y2Ba文件,选择GydF4y2Ba清除所有GydF4y2Ba.GydF4y2Ba

当您结束MATLAB会话时,断点将自动清除。GydF4y2Ba

禁用断点GydF4y2Ba

您可以禁用所选断点,以便您的程序暂时忽略它们并不间断运行。例如,您可以在识别和更正问题后禁用断点。GydF4y2Ba

要禁用断点,请右键单击它并选择GydF4y2Ba禁用断点GydF4y2Ba从上下文菜单。断点变为灰色,表示它被禁用。GydF4y2Ba

要重新启用断点,请右键单击它并选择GydF4y2Ba启用断点GydF4y2Ba.要启用或禁用文件中的所有断点,请选择GydF4y2Ba启用文件中的所有断点GydF4y2Ba要么GydF4y2Ba禁用文件中的所有断点GydF4y2Ba.只有在至少有一个断点启用或禁用时,这些选项仅适用。GydF4y2Ba

添加条件断点GydF4y2Ba

您可以向断点添加一个条件,告诉MATLAB何时在指定的行暂停。要添加条件,右键单击断点并选择GydF4y2Ba设置/修改条件GydF4y2Ba.将打开“编辑器”对话框时,输入条件并单击GydF4y2Ba行GydF4y2Ba.条件是返回逻辑标量值的任何有效MATLAB表达式。MATLAB在运行线路之前评估条件。GydF4y2Ba

例如,假设您只想暂停GydF4y2BaplotRand.mlxGydF4y2Ba如果随机生成的数据包含一个GydF4y2Ba0.GydF4y2Ba.GydF4y2Ba

在第3行的以下条件添加断点:GydF4y2Ba

任何(r == 0)GydF4y2Ba
这条线上出现黄色条件断点。GydF4y2Ba

当您运行文件时,当条件满足时,MATLAB会在指定的行处暂停。例如,在GydF4y2BaplotRandGydF4y2Ba例如,MATLAB在运行第3行之前暂停,如果在GydF4y2BaR.GydF4y2Ba等于GydF4y2Ba0.GydF4y2Ba.GydF4y2Ba

在匿名函数中添加断点GydF4y2Ba

您可以在包含匿名函数的MATLAB代码中添加多个断点。您可以为行本身设置一个断点,并为行中的每个匿名函数设置。GydF4y2Ba

若要添加断点,请单击可执行行左侧的灰色区域为该行添加断点。MATLAB为该行添加了一个断点,并为该行中的每个匿名函数添加了一个禁用断点。若要启用匿名功能的断点,请右键单击该断点并选择GydF4y2Ba启用断点GydF4y2Ba.GydF4y2Ba

要查看关于行上所有断点的信息,请将指针悬停在断点图标上。有可用信息的工具提示。例如,在此代码中,第5行包含两个匿名函数,每个匿名函数都有一个断点。GydF4y2Ba

当您在匿名函数中设置一个断点时,Matlab暂停在调用匿名函数时。以绿色突出显示的线是代码定义匿名函数的行。以灰色突出显示的行是代码调用匿名函数的行。例如,在此代码中,MATLAB将在匿名功能的断点暂停程序GydF4y2BaGGydF4y2Ba,在第5行定义,并在第6行调用。GydF4y2Ba

相关话题GydF4y2Ba