Bash can help us to find problems in bash scripts in some ways. You don't expect too much or gdb like environment but it has a few helpful options.
Running a shell script with
bash -x script.sh
Or you can use set builtin function in shell script:
set -x # display executed commands and arguments
set -v # display shell input lines
You can also turn off this functionality as below: