13.4调试模式

有三个额外的支持函数,允许用户找出Octave在执行脚本时进入调试模式的位置,并在Octave进入调试模式时打印脚本中的代码。

 
: dbwhere

在调试模式下,返回执行停止的当前文件和行号。

详见: dbstack, 数据列表框, 数据库状态, dbcont, dbstep, dbup, dbdown.

 
: dbtype
: dbtype lineno
: dbtype startl:endl
: dbtype startl:end
: dbtype fcn
: dbtype fcn lineno
: dbtype fcn startl:endl
: dbtype fcn startl:end

显示带有行号的脚本文件。

当在调试模式下不带参数调用时,显示当前正在调试的脚本文件。

可选范围规范可用于仅列出文件的一部分。特殊关键字终止是文件最后一行的有效行号规范。

当使用函数名调用时,请使用行号列出该脚本文件。

详见: 数据列表框, 数据库位置, 数据库状态, 设置断点.

 
: dblist
: dblist n

在调试模式下,列出n正在调试的函数的行以要执行的当前行为中心。

如果未指定n默认为10(+/-5行)

详见: 数据库位置, 数据库类型, dbstack.

您也可以使用isdebugmode以确定调试器当前是否处于活动状态。

 
: tf = isdebugmode ()

如果处于调试模式,则返回true,否则返回false。

详见: 数据库位置, dbstack, 数据库状态.

调试模式还允许使用命令单行步进通过函数dbstep.

 
: dbstep
: dbstep n
: dbstep in
: dbstep out
: dbnext

在调试模式下,执行下一个n代码行。

如果n则执行下一行代码。如果下一行代码本身是根据m文件定义的,则保留在现有函数中。

使用dbstep-in将导致下一行的执行进入下一行定义的任何m文件。

使用dbs退出将导致执行继续,直到current函数返回。

编程说明:dbnext是的别名dbstep并且可以互换使用。

详见: dbcont, dbquit.

当处于调试模式时返回键将执行最后输入的命令。例如,在命中断点并输入dbstep一旦之后,只需一个按键就可以按行地通过代码。可以使用禁用此函数auto_repeat_debug_command作用

 
: val = auto_repeat_debug_command ()
: old_val = auto_repeat_debug_command (new_val)
: old_val = auto_repeat_debug_command (new_val, "local")

查询或设置内部变量,该变量控制当输入行为空时是否自动重复调试命令(输入justRET).

当从具有的函数内部调用时地方的参数,则该变量会为函数及其调用的任何子程序在本地进行更改。退出函数时将恢复原始变量值。


版权所有 © 2024 Octave中文网

ICP备案/许可证号:黑ICP备2024030411号