13.5 调用堆栈

正在调试的函数可能是一系列函数调用链中的叶子节点。在检查了当前子程序中的值之后,可能会发现问题的根源出现在更早的代码中。使用 dbupdbdown 在函数调用链中向上或向下移动,以定位变量首次出现错误值的位置。dbstack 显示整个函数调用链以及当前调试所处的层级。

 
dbstack
dbstack n
dbstack -completenames
[stack, idx] = dbstack (…)

显示或返回当前调试的函数堆栈信息。

使用可选参数 n,可省略最内层的 n 个堆栈帧。

参数 -completenames 虽然被接受,但会被静默忽略。Octave 始终返回绝对文件名。

参数 n-completenames 可以同时指定,且可以以任意顺序出现。

可选的返回值 stack 是一个结构体数组,包含以下字段:

file

函数代码所在的 m 文件的名称。

name

包含断点的函数的名称。

line

活动断点的行号。

column

断点所在行的列号。

返回值 idx 指定 stack 结构体数组中当前处于活动状态的元素。

另请参阅: dbupdbdowndbwheredblistdbstatus

 
dbup
dbup n

在调试模式下,向上移动执行堆栈 n 个帧。

如果省略 n,则向上移动一帧。

另请参阅: dbstackdbdown

 
dbdown
dbdown n

在调试模式下,向下移动执行堆栈 n 个帧。

如果省略 n,则向下移动一帧。

另请参阅: dbstackdbup


版权所有 © 2024-2026 Octave中文网

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