dbstop

设置调试断点

描述

例子

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

例子

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

例子

dbstop在文件如果表达式设置在该文件的第一可执行行一个条件断点。执行暂停,只有当表达式评估为true(1)

例子

dbstop在文件位置如果表达式在指定位置设置条件断点。执行暂停在该位置或刚好在该位置之前表达式评估为true。

例子

dbstop如果条件暂停执行在符合指定的行条件,如错误naninf。与其他断点不同,您不需要在特定文件中的特定行上设置此断点。当指定时,MATLAB在任何文件的任何行处暂停条件发生。

例子

dbstop (b)还原您先前保存到的断点b。包含保存的断点的文件必须位于搜索路径或当前文件夹中。MATLAB按行号分配断点,因此文件中的行必须与保存断点时相同。

例子

全部折叠

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

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

函数n =长度(x);z = (1: n)。/ x;

问题的dbstop命令和运行越野车

dbstop越野车车(1:5)

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

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

类型dbquit退出调试模式。

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

创建一个文件,myfile.m,其中包含以下语句

函数n = myfunction(x);函数y = x + 1;

在设置一个断点myfunction

dbstopmyfile myfunction >

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

创建一个文件,myprogram.m,其中包含以下语句

x = 1 (10);n = 1:10 x(n) = x(n) + 1;结束

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

dbstopmyprogram4如果n > = 4myprogram

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

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

类型dbquit退出调试模式。

设置断点,并在出现运行时错误时暂停执行。

创建一个文件,mybuggyprogram.m,其中包含以下语句。

x = 1 (10);n = 1:10 x(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
属性:标识符:'MATLAB: bad下标'消息:'索引超过矩阵维数。栈:[1×1结构体]

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

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

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

索引超过矩阵维数。mybuggyprogram中的错误(第4行)x(n) = x(n+1) +1;4 x(n) = x(n+1) +1;

类型dbquit退出调试模式。

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

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

函数n =长度(x);z = (1: n)。/ x;

设置警告断点,并调用越野车输入向量包含a0作为它的元素之一。

dbstop如果naninf车(0:2)

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

在第3行有bug的NaN/Inf断点。

类型dbquit退出调试模式。

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

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

函数n =长度(x);z = (1: n)。/ x;

中第二行设置错误断点和标准断点越野车

dbstop2越野车dbstop如果错误

运行dbstatus。MATLAB描述了您设置的断点。

dbstatus
bug的断点在第2行。如果错误停止。

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

b = dbstatus (“-completenames”);保存buggybrkpntsb

清除所有断点。

dbclear所有

通过加载MAT文件,并呼吁恢复断点dbstop有了保存的结构,b

负载buggybrkpntsdbstop (b)

输入参数

全部折叠

文件名,指定为字符向量或字符串标量。文件名可以包含部分路径,但必须位于搜索路径上的文件夹或当前文件夹中。

例子:myfile.m

如果文件名包含-completenames选项,则该文件不需要在搜索路径上,只要文件名是全限定名

例子:c:\Program Files\MATLAB\myfile.m -completenames

此外,文件可包含filemarker (>)指定特定本地函数或文件内嵌套函数的路径。

例子:myfile myfunction >

如果文件是不是MATLAB代码文件(例如,它是一个内置或MDL文件),然后MATLAB发出警告。MATLAB不能暂停文件,所以它在执行文件之前暂停。

数据类型:字符|字符串

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

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

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

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

请注意

设置断点时,不能指定位置如果文件包括一个filemarker。例如,命令dbstop在myfile>myfilefunction在5是无效的。

数据类型:字符|字符串

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

例子:n > = 4

数据类型:字符|字符串

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

  • 错误-在外部发生的运行时错误try / catch块。在出现未捕获的运行时错误后,无法恢复执行。

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

    • dbstop如果错误控件之外出现第一个运行时错误时暂停执行try / catch块。

    • MATLAB:ls:InputsMustBeStrings在外部出现第一个运行时错误时暂停执行try / catch消息ID为的块MATLAB: ls: InputsMustBeStrings

  • 发现错误控件中发生的运行时错误试一试的一部分try / catch块。如果希望仅在发生特定错误时才暂停执行,请指定消息id。

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

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

  • naninf-该代码返回一个无限值()或非数字的值()是操作符、函数调用或标量赋值的结果。

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

更多关于

全部折叠

全限定名

完全限定名是唯一指定的准确文件名,这样就不会将其与系统上的任何其他文件混淆。

  • 窗户®平台—以两个反斜杠开头的文件名(\ \),或者与驱动器盘符后跟冒号(:)。

  • UNIX®平台—文件名以斜杠(/)或波浪号(~)。

提示

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

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

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

之前介绍过的R2006a