如何调试WSL Bash脚本

时间:2018-12-08 08:58:51

标签: bash debugging visual-studio-code windows-subsystem-for-linux

我有一个在WSL中运行的bash脚本,该脚本也调用其他脚本,并且手工调试非常复杂,因此我决定尝试在VS代码中对其进行调试。问题在于,它似乎无权使用完整的WSL功能。

设置方法如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "bashdb",
            "request": "launch",
            "name": "Bash-Debug (simplest configuration)",
            "program": "E:/Documents/Code/AndroidBuild/AndroidBuild.sh"
        }
    ]
}

当我运行时,它似乎只能访问最简单的bash命令,而不能访问WSL上安装的组件:

PS E:\Documents\Code> cd '.'; & 'wsl.exe' 'bash' '-c' 'cd "/mnt/e/Documents/Code"; while [[ ! -p "/tmp/vscode-bash-debug-fifo-12281" ]]; do sleep 0.25; done; "bash" "/mnt/c/Users/Jzuken/.vscode/extensions/rogalmic.bash-debug-0.3.3/bashdb_dir/bashdb" --quiet --tty "/tmp/vscode-bash-debug-fifo-12281" --tty_in "/tmp/vscode-bash-debug-fifo-12281_in" --library "/mnt/c/Users/Jzuken/.vscode/extensions/rogalmic.bash-debug-0.3.3/bashdb_dir" -- "/mnt/e/Documents/Code/AndroidBuild/AndroidBuild.sh" '
Hello World
/mnt/e/Documents/Code/AndroidBuild/AndroidBuild.sh: line 2: $'screenfetch\r': command not found

AndroidBuild.sh:

echo "Hello World"
screenfetch

如您所见,echo可以正常运行,但是即使我在WSL中运行它,screenfetch也无法正常工作。

如何设置它,以便可以使用VS代码在本机WSL环境中调试bash脚本?我还可以在WSL上运行可以连接的ssh服务器,如果有帮助的话。

1 个答案:

答案 0 :(得分:0)

简而言之,您可以将bashdb作为WSL中的命令行调试器从源代码或作为软件包安装。例如https://packages.ubuntu.com/xenial/bashdb