深入探索Bash脚本调试器
1. 调试变量简介
Bash 3.0引入了一些实用的环境变量,以辅助编写调试器。这些变量包括:
-BASH_SOURCE:一个数组,包含当前正在执行的文件名。
-BASH_LINENO:一个数组,对应已进行的函数调用的行号。
-BASH_ARGC和BASH_ARGV:前者保存每个帧中的参数数量,后者保存参数本身。
不过,为保持简单并确保调试器能在早期版本的Bash上运行,我们不会使用这些变量。
2. Bash调试器概述
我们要开发一个基础的Bash调试器,大多数调试器具备众多复杂特性,帮助程序员剖析程序。我们的调试器将专注于提供以下基本功能:
-断点设置:指定程序中停止执行的位置。
-单步执行:执行程序中指定数量的语句。
-状态检查与修改:在程序执行期间检查和修改其状态,包括打印和修改变量值。
-代码显示:打印正在调试的源代码,并标记断点位置和当前执行的行。
-无代码修改调试:无需修改原程序的源代码即可进行调试。
3. 调试器结构
Bash调试器bashdb的工作原理是将调试功能与目标脚本(称为测试脚本)合并,存储在另一个文件中并执行