![cbca6795d2cd088d7ff328063d8360a7.png](https://img-blog.csdnimg.cn/img_convert/cbca6795d2cd088d7ff328063d8360a7.png)
对于使用matlab写程序的类猿来说,一个仿真模型下来通常是要有多个脚本产出,脚本的反复测试和修改是我最头疼的事情,因此如果有一些辅助工具能够帮助我们提高效率,那么就是锦上添花甚至雪中送炭的事情了。今天我们就引入这么一个好用的小功能-断点调试。
1.什么是断点
在我们写好了一个程序后,点击‘运行’,那么程序会自动的从第一行运行到最后,断点作用就是在程序的某一行或几行中会停下来,促使用户点击单步执行,进行一步一步的运行。
2.为什么要设置断点
如果程序很简单,有问题发生的时候,一眼就能瞅出问题在哪里,是不需要设置断点的,那么相反的,如果瞅不出的就需要一行一行的看问题所在,这个时候就可以在您认为比较重要的地方设置断点,可以使程序单步执行,一次只执行一条语句,这样就能看到程序执行的效果什么,有没有问题。
3.断点的分类
标准断点
标准断点是在脚本指定的地方暂停进行调试,设置标准断点的方法有两种:方法1)如下的脚本所示,在程序的左边有一个小横线,点击就变成了红色的小点点,就是断点加载成功了;方法2)快捷键Fn+F12
![bb9db66930268d631d7bb9668a9fd1fc.png](https://img-blog.csdnimg.cn/img_convert/bb9db66930268d631d7bb9668a9fd1fc.png)
但是有时候这个红色的小点点并不一定能如期出现,可能会碰到灰色的无效断点或者有叉叉的禁用断点标志,这个时候不要慌张,都是有提示的错误,对于灰色的断点,通常是在碰到有语法错误或者该程序没有保存的时候会出现(比如本文,为了显示,在第五行少了一个括号,因此是语法错误导致的);而红色的只是因为我们选择了禁用的标志,因此只要右键单击选择启用断点即可。
- 无效断点
![63c5b9303d66fb6698592c9bb8caee42.png](https://img-blog.csdnimg.cn/img_convert/63c5b9303d66fb6698592c9bb8caee42.png)
- 禁用断点
![2284bb50ad3c6aed3adf76ca1ea0b8eb.png](https://img-blog.csdnimg.cn/img_convert/2284bb50ad3c6aed3adf76ca1ea0b8eb.png)
条件断点
条件断点和标准断点的区别在于标准断点是只要程序运行到断点处就会停止,而条件断点是满足条件才会停止,条件的指定就是通过如下图所示的方法在标准断点处右键单击,选择修设置条件,然后在弹出的对话框中加入条件。
![0de89819cda620439cb679f35bd11a7e.png](https://img-blog.csdnimg.cn/img_convert/0de89819cda620439cb679f35bd11a7e.png)
![f83f5a771770845f6e97d4f9ac6e3b5c.png](https://img-blog.csdnimg.cn/img_convert/f83f5a771770845f6e97d4f9ac6e3b5c.png)
错误断点
错误断点的设置比较简单粗暴,它针对的是整个的运行程序,设置的位置在编辑器选项卡的运行处,选择其中的一条:
- 出现错误时暂停,即一遇到错误就暂停。
- 出现警告时暂停,即一遇到警告就暂停。
- 出现 NaN 或 Inf 时暂停,即在遇到 NaN(非数字)或 Inf(无限)值时暂停。
以上的三种介绍均是通过手工操作完成的,也是小编在工作中经常用的方法,但是如果各位有一些需要重复的调试程序,也可以考虑用脚本进行,在matlab的帮助文档中,有对调试这一块的程序进行总结,非常经典,网址链接是如下,https://ww2.mathworks.cn/help/matlab/debugging-code.html
其中调试函数总结如下所示,
- dbclear:删除断点
- dbcont:恢复执行
- dbdown:反向
- dbup :工作区切换
- dbquit:退出调试模式
- dbstack:函数调用堆栈
- dbstatus:列出所有断点
- dbstep:从当前断点执行下一个可执行代码行
- dbstop:设置断点用于调试
- dbtype:显示带有行号的文件
- dbup:在调试模式下,从当前工作区切换到调用方的工作区
- keyboard:将控制权给予键盘
- echo:在函数执行期间显示语句