设置断点

您所在的位置:网站首页 程序暂停或继续的快捷键 设置断点

设置断点

2024-06-04 12:13| 来源: 网络整理| 查看: 265

设置断点

自 R2021b 开始提供。取代设置断点 (R2021a) 和在实时编辑器中调试代码 (R2021a)。

设置断点会暂停 MATLAB® 程序的执行,以便您检查可能出现问题的值。您可以在编辑器或实时编辑器中以交互方式设置断点,也可以使用命令行窗口中的函数设置断点。

有三种类型的断点:

标准

条件

错误

您可以只选择那些保存在特定位置(当前文件夹或搜索路径上的文件夹)的文件,在这些文件的可执行代码行处设置断点。您可以随时设置断点,无论 MATLAB 是处于闲置状态还是在忙于运行文件。

默认情况下,当 MATLAB 到达断点时,它会打开包含该断点的文件。要禁用此选项,请执行以下操作:

从主页选项卡上,点击环境部分中的 预设。

在预设项窗口中,选择 MATLAB > 编辑器/调试器。

清除当 MATLAB 到达断点时自动打开文件选项,然后点击确定。

标准断点

标准断点在文件的特定行暂停。要设置标准断点,请点击要设置断点的可执行代码行左侧的灰色区域。您也可以按 F12 键在当前行设置断点。如果您尝试在可执行代码行以外的行处设置断点,例如注释或空白行,则 MATLAB 会在下一个可执行代码处行设置断点。

要以编程方式设置标准断点,请使用 dbstop 函数。例如,要在名为 plotRand.m 的文件的第 3 行添加断点,请键入:

dbstop in plotRand at 3

调试包含循环的文件时,应在循环内设置断点,以检查在循环的每个增量处的值。否则,如果只在循环开始时设置断点,则 MATLAB 只会在循环语句处暂停一次。例如,以下代码创建了一个包含 10 个 1 的数组,并使用 for 循环对数组中的第 2 项到第 6 项执行计算:

x = ones(1:10); for n = 2:6 x(n) = 2 * x(n-1); end要使 MATLAB 在 for 循环的每个增量处暂停(总共五次),请在第四行设置断点。

条件断点

如果使用条件断点,MATLAB 只在满足指定条件时才在文件的指定行处暂停。例如,如果您想在循环中进行一些迭代后再检查结果,则可以使用条件断点。

要设置条件断点,请右键点击要设置断点的可执行代码行左侧的灰色区域,然后选择设置条件断点。如果该行上已存在断点,请选择设置/修改条件。在打开的对话框中,输入条件并点击确定。条件是任何返回逻辑标量值的有效 MATLAB 表达式。

运行代码时,MATLAB 会在运行该行之前评估条件。如果满足条件,MATLAB 将进入调试模式,并在该行暂停。例如,以下代码创建了一个包含 10 个 1 的数组,并使用 for 循环对数组中的第 2 项到第 6 项执行计算:

x = one(1:10) for n = 2:6 x(n) = 2 * x(n-1); end

在第四行用条件 n >= 4 设置条件断点。当您运行代码时,MATLAB 会运行两次 for 循环,并在 n 等于 4 的条件下进行第三次迭代时在第 4 行暂停。如果继续运行代码,则当 n 等于 5 时,MATLAB 会在第四次迭代的第四行再次暂停,然后当 n 等于 6 时再次暂停。

您也可以使用 dbstop 函数以编程方式设置条件断点。例如,要在 myprogram.m 的第 6 行添加条件断点,请键入:

dbstop in myprogram at 6 if n>=4错误断点

在编辑器中,如果 MATLAB 遇到问题,您可以将错误断点设置为让 MATLAB 暂停并进入调试模式。实时编辑器不支持设置错误断点。

与标准断点和条件断点不同的是,您不用在具体行或具体文件中设置错误断点。设置错误断点后,只要符合所指定的错误条件,MATLAB 便会在任意文件的任意行处暂停。MATLAB 随后会进入调试模式,打开包含错误的文件,并且在包含错误的行上会出现执行箭头。

要设置错误断点,请点击编辑器选项卡上的 运行 ,并从以下选项中进行选择:

出现错误时暂停,即一遇到错误就暂停。

出现警告时暂停,即一遇到警告就暂停。

出现 NaN 或 Inf 时暂停,即在遇到 NaN(非数字)或 Inf(无限)值时暂停。

您也可以使用具有指定的 condition 的 dbstop 函数,以编程方式设置错误断点。例如,要一遇到错误就暂停执行,请键入:

dbstop if error要在 try/catch 块的 try 部分内第一次发生运行时错误且消息 ID 为 MATLAB:ls:InputsMustBeStrings 时暂停执行,请键入:dbstop if caught error MATLAB:ls:InputsMustBeStrings匿名函数中的断点

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

要在包含匿名函数的行上设置断点,请点击该行左侧的灰色区域。MATLAB 为该行添加断点,并为该行中的每个匿名函数添加一个处于禁用状态的断点。要为匿名函数启用断点,请点击该函数处于禁用状态的断点。

要查看一行中所有断点的信息,请将光标放在断点图标上。随即会显示工具提示及可用信息。例如,在以下代码中,第 7 行包含两个匿名函数,每个匿名函数都有一个断点。

当您在匿名函数中设置断点时,MATLAB 会在调用匿名函数时暂停。以绿色突出显示的代码行是代码定义匿名函数的位置。以灰色突出显示的代码行是代码调用匿名函数的位置。例如,在以下代码中,MATLAB 在为匿名函数 g 设置的断点处暂停程序,该函数在第 7 行定义,并在第 8 行调用。

无效断点

深灰色断点表示无效断点。

出现以下情况时,断点无效:

文件中未保存的更改。保存该文件以使断点有效。灰色断点变为红色,表示它们现在变为有效了。

文件中的语法错误。当您设置断点时,会显示一则错误消息,指示语法错误的位置。修复语法错误并保存文件以使断点有效。

禁用断点

您可以禁用所选断点以便让程序暂时忽略它们而不中断运行。例如,您可以在您认为发现并更正了问题后或使用条件断点时禁用断点。

要禁用断点,请右键点击断点图标,从上下文菜单中选择禁用断点。

断点变为浅灰色,表示它已禁用。

要重新启用断点,请右键点击断点图标,从上下文菜单中选择启用断点。

灰色断点变为红色,程序执行在该行暂停。

要启用或禁用文件中的所有断点,请右键点击可执行文件行左侧的灰色区域,然后选择启用文件中的所有断点或禁用文件中的所有断点。只有当至少有一个断点可供启用或禁用时,才能使用这些选项。

清除断点

所有断点都保留在文件中,直到您清除(删除)它们为止,或直到它们在您的 MATLAB 会话结束时自动被清除为止。

要清除断点,请右键点击断点图标,然后从上下文菜单中选择清除断点。您也可以按 F12 键清除断点。

要以编程方式清除断点,请使用 dbclear 函数。例如,要清除名为 myprogram.m 的文件中第 6 行处的断点,请键入:

dbclear in myprogram at 6

要清除文件中的所有断点,请右键点击断点列,然后选择清除文件中的所有断点。您也可以使用 dbclear all 命令。例如,要在名为 myprogram.m 的文件中清除所有断点,请键入:

dbclear all in myprogram

要清除所有文件中的全部断点(包括错误断点),请右键点击断点列,然后选择清除全部断点。您也可以使用 dbclear all 命令。

在您终止 MATLAB 会话时,系统会自动清除断点。要保存断点以用于后续会话,请使用 dbstatus 函数。

相关主题调试 MATLAB 代码文件调试时检验值


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3