VS Code Remote Bash Debug如何从主脚本切换到被调用脚本调试?
解决VS Code Remote Bash Debug跨脚本断点不生效问题
针对主脚本调用外部脚本函数时断点无法触发的问题,按以下步骤排查修复:
确保调试配置开启跟踪
修改你的launch.json配置,添加follow: true参数(允许调试器跟踪source加载的脚本或子进程),同时指定远程环境中bashdb的实际路径(避免路径找不到的问题)。修正后的配置示例:{ "type": "bashdb", "request": "launch", "name": "Bash-Debug (select script from list of sh files)", "cwd": "${workspaceFolder}", "program": "${command:SelectScriptName}", "args": [], "showDebugOutput": true, "follow": true, "bashdbPath": "/usr/bin/bashdb" }注:
bashdbPath的值可以通过远程终端执行which bashdb获取。确认脚本加载方式与断点时机
如果主脚本通过source fonctions_commun.sh加载函数,调试器默认会跟踪该脚本,但如果source语句在条件分支中(比如if判断后),需先在source语句前设置断点,执行到该步骤后,再去fonctions_commun.sh中设置断点——此时调试器已识别该文件,断点会正常生效。检查远程环境的bashdb安装
远程机器必须安装bashdb才能支持跨脚本调试,执行以下命令确认:bashdb --version若未安装,用对应包管理器安装:
- Debian/Ubuntu:
sudo apt install bashdb - CentOS/RHEL:
sudo yum install bashdb
- Debian/Ubuntu:
断点设置的细节
- 不要在空行、注释行或函数定义的
function关键字行设置断点,要选函数内的有效代码行。 - 如果
fonctions_commun.sh是符号链接,直接打开实际文件路径设置断点,避免调试器路径识别错误。
- 不要在空行、注释行或函数定义的
内容的提问来源于stack exchange,提问作者amallek
相关产品推荐
相关产品推荐

