[bashdb]SHELL脚本的事脚本解决

BashDebugger是一款开源的bash脚本调试工具,支持单步跟踪、断点设置、变量查看等功能,使用方式类似于GDB。它通过shell脚本实现,需与bash版本匹配,便于熟悉GDB的用户无缝过渡。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

Bash Debugger这个开源项目很有意思,可以对需要调试的脚本单步跟踪,设置断点,查看变量值,打印调用堆栈等等。它是怎么做到的?有点意想不到。居然和linux下的GDB类似的操作方式。

使用

下载对应你linux系统里的bash版本的bashdb版本代码,在本地编译安装,就可以在本地linux里直接使用bashdb这个工具了。

1. 查看本地bash的版本号

bash --version

我的ubuntu下是bash版本号是4.4.20

2. 下载对应的bashdb的代码

https://sourceforge.net/projects/bashdb/files/bashdb/4.4-1.0.1/

注意:一定要下载对应版本的代码,不匹配的代码无法兼容你当前的bash环境。

3. 使用方法

bashdb xxxx.sh

分析

1. 类似linux下GDB的使用方式。所有GDB下的命令,居然照搬过来,比如常用的这几个:

next          // jump next line code
print         // print variable
backtrace     // print a full stack trace
break         // setup a break pointer

2. 如何实现的

其实是shell脚本的事情,shell脚本自己解决。bashdb本身其实就是一个shell脚本。以上使用到的那些命令,几乎都是bash shell脚本实现的,见源代码根目录下的command子目录。可以看到这几个文件:

next.sh
break.sh
backtrace.sh

3. 版本兼容问题

这下就很好解释为什么要下载安装对应bash版本号的代码了。很多脚本在不同版本号的bash环境下执行的结果可能并不一致。为了最大的兼容这点,为每个版本的bash编写单独的bashdb就是最简单的解决方式。

后续

类似linux的gdb的调试方式,那些具有linux下gdb调试经验的使用者基本可以无缝衔接上,几乎没有学习成本了。项目作者是非常贴心的。作为一个纯粹的使用者,写下这个文章为bashdb做点推广介绍吧。感谢原作者。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值