Hexagon GDB Debugger介绍(43)
4.4 Tcl 脚本
调试器可选择支持 Tcl 脚本语言:
■ Tcl 脚本使用-tclfe 选项(第2.4.2 节)或set 命令(第2.5.5 节)启用。
■ 一旦启用了 Tcl 脚本,调试器命令提示符就会识别 Tcl 和调试器命令。
■ 使用Tcl 文件命令支持文件I/O。
■ 调试器断点/观察点命令被扩展以支持Tcl 回调函数(第2.9.1.7 节)。
■ 当存在重复的 Tcl 和调试器命令名称时,将重命名 Tcl 命令(第 4.4.2 节)。
包含调试器和 Tcl 命令的命令文件称为脚本。 有关命令文件的信息,请参阅第 4.3 节。
当您输入多行 Tcl 命令(例如过程定义)时,提示字符变为 % 以指示调试器处于 Tcl 模式。
注意:
本节仅提供有关 Tcl 脚本语言的基本信息。
有关更多信息,请参阅 Tcl 和 Tk 工具包(Addison-Wesley,1994)。
Tcl 不能在同一个调试会话中与 Python 一起使用。
调试器使用 Tcl 8.4 版。
4.4.1 Tcl 变量
Tcl 允许用户定义可以在调试器中使用的变量来存储值并在以后引用它。 这些变量完全存在于调试器中:它们不是程序的一部分,设置变量对程序的进一步执行没有直接影响。
例如:
t_set count 5 ;# declare variable "count" with init value 5
使用前面的 $ 字符引用 Tcl 变量将返回变量的值。
例如:
step $count
Tcl 包括 if、while 和 for 语句,类似于 C 语言中的语句。
但是,这些命令的语法不太灵活:左大括号 { 必须始终与命令的前一部分出现在同一行。 否则,后续行将被视为单独的命令。
例如:
if {$count == 5}
{
puts "Test passed"
}
注意:
$tcl_platform(platform) 返回一个字符串,指示
当前操作系统(“unix”或“windows”)。
调试器便利变量(第 2.12.9 节)是脚本变量。
4.4.2 Tcl 命令
Tcl 语言包括许多预定义的命令。 有关更多信息,请参阅 Tcl 和 Tk 工具包(Addison-Wesley,1994)。
注意:
Tcl exit 命令已重新映射到调试器命令 quit(第 2.6 节)。
以下 Tcl 命令已重命名(通过添加前缀“t_”)以避免与相应调试器命令的命名冲突:
■ t_append
■ t_break
■ t_catch
■ t_continue
■ t_file
■ t_info
■ t_list
■ t_load
■ t_return
■ t_set
■ t_source
■ t_trace
■ t_unset
注意:
t_return 命令有一个名为 -code 的选项,它被定义为接受(以及其他)参数值 break 、 continue 和 return 。 请注意,这些参数指的是重命名的 Tcl 命令 t_break、t_continue 和 t_return 而不是调试器命令 break、continue 和 return。
4.4.3 脚本示例
以下脚本显示了如何设置断点和回调(第 2.9.1.7 节):
以下脚本显示了如何执行文件 I/O: