使用北太天元编写脚本时,很多时候会遇见错误(bug)导致脚本无法运行或者运算结果错误。这时候,我们需要根据脚本运行时系统给出的错误信息或警告信息进行相应的代码调试或者通过设置断点定位错误位置和问题的方式进行相应代码调试。本帖子将介绍通过设置断点进行代码调试。
一、使用调试器窗口调试
(1) 调试脚本
①设置断点
鼠标单击需要设置断点的具体行的行号左侧,即可将这一行设置为断点。设定断点后,行号左侧立即出现一个圈点标记。
②进入调试模式
点击菜单栏“运行”→“调试”按钮,或者工具栏的“调试”按钮,进入调试器窗口,程序会自动运行到当前调试脚本的第一个断点所在行。其中:
a.行号左侧圆圈标记会出现黄色箭头的标记,表示显示代码运行到的位置。
b.工作区会显示内存中各变量的数值。
c.可以通过“下一步”按钮来逐行运行代码,也可以通过“运行到下一断点按钮”来直接运行到下一个断点的位置。
d.点击“停止调试”或者让脚本运行到代码末尾时,程序会自动退出调试模式,返回到编辑模式。
可以按照实际情况,在调试器窗口设置新的断点,也可以清除断点(可以直接用鼠标单击代表断点的圆点,将其删除)。
(2) 查看变量
①在工作区查看变量值
②使用鼠标悬停在代码编辑器里的变量上,显示该变量值。
③如果运行的脚本调用了别的函数,可以通过工作区上方的函数栈下拉列表选择各个函数的内存栈,分别查看不同栈内储存的变量信息。
二、命令行窗口调试
北太天元还提供完善的调试命令,利用这些调试命令同样可以在命令行窗口中进行代码调试。
(1) 设置断点
设置断点的函数dbstop调用语法如下:
dbstop(filename, n),比如在 dbstop("test", 21) ,表示在test.m的第21行设置调试断点。
(2) 清除断点
清除断点的函数dbclear 调用语法如下:
dbclear :清除所有调试断点。
dbclear(filename, n) 清除在filename.m的第n行设置的调试断点。
(3) 恢复执行
恢复执行的函数dbcont/dbcontinue调用语法如下:
dbcont/dbcontinue:脚本调试中,进入继续运行状态,直到下一个断点或者运行结束回到交互模式 (dbcont/dbcontinue)。
(4) 切换工作空间
切换工作空间的函数dbdown和函数dbup调用语法如下:
dbdown:深入一层调用栈。
dbup:跳出一层调用栈。
(5) 执行一行或多行语句
执行一行或多行语句的函数dbstep调用语法如下:
dbstep: 运行一条指令。
dbstep in:进入一个子函数。
dbstep out:离开一个子函数。
(6) 列出M文件并标上标号
列出M文件并标上标号的函数dbtype/dblist调用语法如下:
打印调试脚本,打印出正在调试的脚本的代码行,临近所指示的位置,缺省为当前位置,或者制定的位置,打印出10行代码
dbtype和dblist同义
dbtype:打印出当前调试处的脚本代码行。
dblist:打印出当前调试处的脚本代码行。
dblist N/ dblist(N):打印出第N行处的脚本代码行。
(7) 退除调试模式
退出调试模式的函数dbquit/dbexit调用语法如下:
dbquit:立即结束调试器并返回基本工作空间,所有断点仍然有效。
dbexit:立即结束调试器并返回基本工作空间,所有断点仍然有效。