How to Debug Bash with VS Code
Summary
Basic
- GNU Bash
- Extension: Bash Debug
- Debugger: bashdb
- module code: bubble_sort.sh
Spec
- OS
    - ✅ MacOS
- ✅ Windows
- ✅ Linux
 
- Break Point
    - ✅ break point
- ❌ condition break point : able to set, but not working
- ❌ function breakpoint
 
- Step Execution
    - ✅ Step Over
- ✅ Step Into
- ✅ Step Out
- ✅ Continue
- ❌ Step Back
- ❌ Move To
- ❌ Pause
 
- Variables>
    - ✅ variables views
- ✅ watch variables
 
- Call Stack
    - ✅ call stack
 
- Evaluation
    - ✅ eval expression to show variables
- ✅ eval expression to change variables
 
- Type of Execution
    - ✅ debug executable package
- ❌ remote debugging
 
Instruction
MacOS
brew install bash
Linux(Ubuntu 20.04)
no additional installation
Windows
- install wsl Ubuntu20.04
- see Linux instruction
debugging executable file
- Program: bubble_sort.sh
launch.json
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Bash-Debug (hardcoded script name)",
      "type": "bashdb",
      "request": "launch",
      "program": "${workspaceRoot}/bubbleSort.sh",
      "commandLineArguments": "4 3 2 1"
    }
  ]
}