文档

dbstop

为调试设置断点

语法

文件中的Dbstop
Dbstop在文件的位置
停止文件if表达式
在文件的位置停止如果表达式
停止条件
dbstop (b)

描述

例子

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

例子

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

例子

dbstop在文件如果表达式在文件的第一个可执行行设置条件断点。执行只在以下情况下暂停表达式求值为true(1)

例子

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

例子

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

例子

dbstop (b恢复先前保存到的断点b。包含保存的断点的文件必须在搜索路径上或在当前文件夹中。MATLAB按行号分配断点,因此文件中的行必须与保存断点时相同。

例子

全部折叠

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

创建一个文件,buggy.m,它包含了这些表述。

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

问题的dbstop命令并运行

dbstop车(1:5)

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

2 n = length(x);K > >

类型dbquit退出调试模式。

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

创建一个文件,myfile.m,它包含了这些表述

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

设置断点myfunction

dbstopmyfunction myfile >

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

创建一个文件,myprogram.m,它包含了这些表述

X = ones(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 = ones(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
ans = MException with properties: identifier: 'MATLAB:badsubscript'消息:'Index超过矩阵维度。原因:{}stack: [1×1 struct]

清除错误断点,并设置一个新的错误断点,指定要捕获的错误消息的标识符。调用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退出调试模式。

如果代码返回NaN值,设置断点并暂停执行。

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

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

设置警告断点,然后调用一个包含a的输入向量0作为它的一个元素。

dbstop如果naninf车(0:2)

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

在第3行遇到NaN/Inf断点错误。

类型dbquit退出调试模式。

设置、保存、清除和恢复保存的断点。

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

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

中的第二行设置错误断点和标准断点

dbstop2dbstop如果错误

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

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

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

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

清除所有断点。

dbclear所有

通过加载mat文件并调用dbstop有了保存的结构,b

负载buggybrkpntsdbstop (b)

输入参数

全部折叠

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

例子:myfile.m

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

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

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

例子:myfunction myfile >

如果文件不是MATLAB代码文件(例如,它是一个内置或mdl文件),那么MATLAB发出警告。MATLAB不能暂停文件,因此它在执行该文件之前暂停。

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

  • 行号文件指定为字符向量。默认值为1

  • 行号文件,在匿名函数数,指定为字符向量。例如,1 @2在第二个匿名函数中指定第1行。默认匿名函数号为1

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

请注意

设置断点时,不能指定位置如果文件包括一个文件标记。例如:命令Dbstop在我的文件>myfilefunction在5是无效的。

计算的代码,就好像通过eval)转换为标量逻辑值10,(分别为真或假),指定为字符向量。

例子:N >= 4

语句,当该条件求值为true时导致执行暂停,指定为以下选项之一:

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

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

    • Dbstop如果错误类之外发生的第一个运行时错误时暂停执行try / catch块。

    • MATLAB:ls: inputsmusstbestrings类之外的第一个运行时错误暂停执行try / catch消息ID为的块MATLAB: ls: InputsMustBeStrings

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

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

    方法禁用警告,则此条件不起作用警告所有人命令,或者禁用对指定的id。有关禁用警告的详细信息,请参见警告

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

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

更多关于

全部折叠

完全限定名称

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

  • 窗户®platforms—以两个反斜杠开头的文件名(\ \)或驱动器号后面加冒号()。

  • UNIX®platforms—以斜杠()开头的文件名/)或波浪()。

提示

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

  • 若要在断点暂停执行后恢复执行,请使用dbcontdbstep。要退出调试模式,请使用dbquit

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

R2006a之前引入

这个话题有帮助吗?