3

我安装bashdb在使用 bash 4.3 的 fedora 21 上。我需要运行 using--debugger因为我想$0正确设置为脚本的名称而不是bashdb

bash --debugger my.bash

但是脚本只是执行,没有调试会话。另一方面运行:

bash --debugger my.bash "" 

工作正常。

我究竟做错了什么?

4

2 回答 2

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 将被修复。

于 2015-04-29T09:59:58.397 回答
0

使用bash --debugger时,调试器必须安装在 bash 期望的位置。尽管配置脚本试图解决这个问题,但很多时候它会出错。要查看bash认为应该安装调试器的位置,请运行:

strings /bin/bash | grep bashdb

在 Ubuntu 上,我得到的答案是:/usr/share/bashdb/bashdb-main.inc. 所以bashdb预计会安装在/usr/share/bashdb. 使用它,然后像这样运行配置

/bin/bash ./configure -with-bashdb-main.inc=/usr/share/bashdb/bashdb-main.inc

于 2015-04-26T14:03:21.953 回答