主要内容

dbstop

设置调试断点

描述

实例

dbstop在文件中第一个可执行行设置断点文件.当您运行文件,MATLAB®进入调试模式,在断点处暂停执行,并显示暂停的行。

实例

dbstop在文件地方在指定位置设置断点。MATLAB执行在那个位置之前立即暂停,除非这个位置是匿名函数.如果该位置是一个匿名函数,则在断点之后执行暂停。

实例

dbstop在文件如果表示在文件的第一个可执行行设置条件断点。只有在以下情况下执行才会暂停表示评估为true(1)

实例

dbstop在文件地方如果表示在指定位置设置条件断点。仅当表示计算结果为true。

实例

dbstop如果条件在符合指定的行暂停执行条件例如错误naninf. 与其他断点不同,您不在特定文件的特定行设置此断点。当指定条件发生。

实例

dbstop (B)恢复以前保存到的断点B. 包含已保存断点的文件必须位于搜索路径或当前文件夹中。MATLAB按行号分配断点,因此文件中的行必须与保存断点时的行相同。

例子

全部折叠

设置断点并在程序的第一个可执行行暂停执行。

创建一个文件,buggy.m,包含这些语句。

函数Z = bug (x) n = length(x);z = (1: n)。/ x;

发布dbstop命令和运行婴儿车

dbstop婴儿车车(1:5)

MATLAB显示它暂停并进入调试模式的行。

2 n=长度(x);K>>

类型dbquit退出调试模式。

在程序中本地函数的第一个可执行行设置断点。

创建一个文件,myfile.m,它包含这些语句

函数N = myfile(x) N = myfunction(x);函数Y = myfunction(x) Y = x + 1;

设置断点为我的功能

dbstopmyfunction myfile >

在程序中设置断点,使MATLAB在循环的某些迭代后暂停。

创建一个文件,myprogram.m,它包含这些语句

x=一(1,10);对于n=1:10x(n)=x(n)+1;终止

设置一个断点,以便在n > = 4,并运行代码。

dbstopmyprogram4.如果n > = 4myprogram

在循环3次迭代后,MATLAB暂停在第4行,当n=4

4x(n)=x(n)+1;K> >

类型dbquit退出调试模式。

设置断点并在发生运行时错误时暂停执行。

创建一个文件,mybuggyprogram.m,包含这些语句。

x=一(1,10);对于n=1:10x(n)=x(n+1)+1;终止

设置错误断点,然后调用mybuggyprogram

dbstop如果错误mybuggyprogram

出现运行时错误,MATLAB进入调试模式,在中的第4行暂停mybuggyprogram.m

索引超出矩阵维度。在mybuggyprogram(第4行)错误x(n) = x(n+1) +1;4 x(n) = x(n+1) +1;

类型dbquit退出调试模式。

MException.last获取程序生成的错误消息标识符。

MException.last
ans=MEException,其属性为:标识符:“MATLAB:badsubscript”消息:“索引超过了矩阵维度。原因:{}堆栈:[1×1结构]

清除错误断点并设置一个新的错误断点,指定要捕获的错误消息的标识符。调用mybuggyprogram

dbclear如果错误dbstop如果错误MATLAB: badsubscriptmybuggyprogram

出现相同的运行时错误,MATLAB进入调试模式,在中的第4行暂停mybuggyprogram.m

索引超出矩阵维度。在mybuggyprogram(第4行)错误x(n) = x(n+1) +1;4 x(n) = x(n+1) +1;

类型dbquit退出调试模式。

设置断点,并在代码返回时暂停执行价值

创建一个文件,buggy.m,这需要输入向量。

函数Z = bug (x) n = length(x);z = (1: n)。/ x;

设置一个警告断点,然后调用婴儿车一个包含a的输入向量0作为其要素之一。

dbstop如果naninf车(0:2)

出现零除错误,MATLAB进入调试模式,在中的第3行暂停buggy.m

NaN/Inf断点命中错误在第3行。

类型dbquit退出调试模式。

设置、保存、清除,然后恢复保存的断点。

创建一个文件,buggy.m,其中包含这些语句。

函数Z = bug (x) n = length(x);z = (1: n)。/ x;

在中的第二行设置错误断点和标准断点婴儿车

dbstop2.婴儿车dbstop如果错误

dbstatus.MATLAB描述您设置的断点。

dbstatus
buggy的断点位于第2行。如果出现错误,请停止。

为变量指定一个表示断点的结构B,然后保存B到MAT-filebuggybrkpnts使用b=dbstatus('-completenames')保存绝对路径和断点函数嵌套序列。

b=dbstatus(“-completenames”); 拯救buggybrkpntsB

清除所有断点。

dbclear所有

通过加载mat -文件和调用来恢复断点dbstop使用保存的结构,B

负载buggybrkpntsdbstop(b)

输入参数

全部折叠

文件名,指定为字符向量或字符串标量。文件名可以包括部分路径名在MATLAB上搜索路径或绝对路径名对于任何文件。有关MATLAB中有效文件名的更多信息,请参见指定文件名

例子:myfile.m

此外,文件可以包括文件标记(>)来指定特定局部函数或文件内嵌套函数的路径。

例子:myfunction myfile >

如果文件不是MATLAB代码文件(例如,它是内置的或mdl文件),然后MATLAB发出警告。MATLAB不能暂停文件,因此它会在执行文件之前暂停。

数据类型:字符|一串

要在中设置的断点位置文件,指定为下列选项之一:

  • 行号在文件指定为字符向量或字符串标量。默认值是1.

  • 行号在文件,位于匿名函数号,并指定为字符向量或字符串标量。例如,1 @2在第二个匿名函数中指定行号1。默认匿名功能号为1.

  • 中的本地函数的名称文件,指定为字符向量或字符串标量。

笔记

设置断点时,不能指定地方如果文件包括一个文件标记。例如,命令Dbstop in myfile>myfilefunction at 5是无效的。

数据类型:字符|一串

计算为标量逻辑值的逻辑表达式1.0,指定为字符向量或字符串标量。

例子:n > = 4

数据类型:字符|一串

暂停条件,指定为以下选项之一:

  • 错误-运行时错误发生在尝试/抓住块。出现未捕获的运行时错误后,无法继续执行。

    如果希望仅在发生特定错误时暂停执行,请指定消息id。例如:

    • dbstop中频错误在发生在外部的第一个运行时错误时暂停执行尝试/抓住

    • dbstop如果错误MATLAB:ls:InputsMustBeStrings在外部出现第一个运行时错误时暂停执行尝试/抓住消息ID为的块MATLAB: ls: InputsMustBeStrings

  • 捕捉错误-在中发生的运行时错误试一试的一部分尝试/抓住块如果希望仅在发生特定错误时暂停执行,请指定消息id。

  • 警告-出现运行时警告。如果您希望仅在出现特定警告时暂停执行,请指定消息id。

    属性禁用警告,则此条件无效警告所有命令,或禁用指定的警告id.有关禁用警告的详细信息,请参见警告

  • naninf-代码返回一个无限值()或者不是数字的值()作为运算符、函数调用或标量赋值的结果。

以前使用保存到结构数组的断点列表b=dbstatus

提示

  • 开始调试之前,请确保您的程序已保存,并且该程序及其调用的任何文件都存在于您的搜索路径或当前文件夹中。

  • 若要在断点暂停执行后继续执行,请使用dbcontdbstep.要退出调试模式,请使用dbquit.要删除文件中的所有断点,请使用dbclear在文件名.要删除所有文件中的所有断点,请使用dbclear所有. 有关详细信息,请参阅dbclear

  • 当MATLAB在显示程序创建的模式对话框或图形时在断点处暂停时,可能会变得无响应。退出调试模式并返回MATLAB提示符(>>),使用Ctrl + C

之前介绍过的R2006a