bash --debugger 在安装 bashdb 后无法在没有参数的脚本上使用 bash 4.3

标签 bash debugging trepan

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

bash --debugger my.bash

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

bash --debugger my.bash "" 

工作正常。

我做错了什么?

最佳答案

我认为这是 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 存在此错误,但在 4.3.33 之后的下一个版本中(2015 年 4 月之后的某个时间),此错误将被修复。

关于bash --debugger 在安装 bashdb 后无法在没有参数的脚本上使用 bash 4.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28773452/

相关文章:

bash - 在 bash 中,cp 会在使用通配符时复制点文件吗?我应该使用哪个选项

javascript - firebug:断点和 contentEditable 奇怪的行为

linux - bashdb启动错误: bashdb/lib/setshow. sh:第91行:/dev/pts/2:权限被拒绝

python - ipdb 中的后续 "list"命令

c# - LogTrace 和 LogDebug 未出现在控制台或调试窗口中 - .NET 7.0 中的日志记录问题

centos - 将用户添加到通过 ls -l $(tty) 列出的组后出现 bashdb 错误

perl - 精确的 Perl 位置,例如使用 B::Deparse

r - 在 Rmarkdown 中的 bash 中设置环境变量

linux - 如何编写脚本来保存守护进程的 processid?

bash - 将多个 stdout 命令重定向到一个文件