我在Fedora 21上安装了bashdb
,它使用了bash 4.3。我需要使用--debugger
运行,因为我希望$0
正确设置为脚本名称,而不是 bashdb 。
bash --debugger my.bash
但是脚本刚刚执行,没有调试会话。另一方面,跑步:
bash --debugger my.bash ""
工作正常。
我做错了什么?
答案 0 :(得分:2)
这是我认为在bash 4.3中引入的错误:Wed Feb 26 09:36:43 2014 -0500 Bash-4.3 distribution sources and documentation
添加的代码导致这是:
if (debugging_mode && locally_skip_execution == 0 && running_setuid == 0 && dollar_vars[1])
start_debugger ();
我已经发布了一个关于此的错误报告。见http://lists.gnu.org/archive/html/bug-bash/2015-04/msg00183.html
上述帖子中的简短故事是,虽然bash版本4.3到4.3.33有这个bug,但是在4.3.33之后的下一个版本中(2015年4月之后的某个时间),这个bug将被修复。
答案 1 :(得分:0)
使用sizeof
时,调试器必须安装在bash期望的位置。虽然 configure 脚本试图解决这个问题,但很多时候它会出错。要查看 bash 认为应该安装调试器的位置,请运行:
bash --debugger
在Ubuntu上,我得到的答案是:strings /bin/bash | grep bashdb
。因此, bashdb 应该安装在/usr/share/bashdb/bashdb-main.inc
中。使用此方法,然后运行 configure ,如下所示:
/usr/share/bashdb