在安装bashdb后,bash --debugger不能在没有参数的脚本上使用bash 4.3

时间:2015-02-27 20:10:56

标签: bash debugging

我在Fedora 21上安装了bashdb,它使用了bash 4.3。我需要使用--debugger运行,因为我希望$0正确设置为脚本名称,而不是 bashdb

bash --debugger my.bash

但是脚本刚刚执行,没有调试会话。另一方面,跑步:

bash --debugger my.bash "" 

工作正常。

我做错了什么?

2 个答案:

答案 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