Как я могу отладить скрипт WSL Bash - PullRequest
0 голосов
/ 08 декабря 2018

У меня есть сценарий bash, который я запускаю в WSL, который также вызывает другие сценарии, и мне довольно сложно отлаживать вручную, поэтому я решил попробовать отладить его в коде 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 работает нормально, а screenfetch - нет.не работает, даже если он работает, если я запускаю его внутри WSL.

Как я могу настроить его так, чтобы я мог отлаживать сценарии bash в собственной среде WSL с использованием кода VS?У меня также есть сервер SSH, работающий на моем WSL, к которому я могу подключиться, если это может помочь.

1 Ответ

0 голосов
/ 18 декабря 2018

Короче говоря, вы можете установить bashdb как отладчик командной строки в WSL, либо из исходного кода, либо в виде пакета.Например https://packages.ubuntu.com/xenial/bashdb

...