远程SSH下VSCode Perl调试器环境变量缺失问题求助
Perl调试器环境变量缺失问题排查
本地为OpenSuse Leap 15.6系统,运行VSCode通过Remote - SSH扩展连接至Ubuntu 22.04远程实例,客户端与服务端均已更新。
此前多年使用Perl - Language Server and Debugger for Perl扩展无异常,近几周调试脚本时,脚本因环境变量缺失崩溃。排查发现调试器中仅能获取以下环境变量:
$VAR1 = 'PLSDI_REMOTE=127.0.0.1:13605'; $VAR1 = 'PERL5DB=BEGIN { $| = 1 ; require Perl::LanguageServer::DebuggerInterface }'; $VAR1 = 'PLSDI_SESSION=95bf6688-2283-4f55-b02e-ca37ae4d6027'; $VAR1 = 'PLSDI_OPTIONS=reload_modules';
PATH等关键变量缺失,导致反引号中的命令无法解析为可执行文件。但在VSCode终端或直接SSH连接服务器运行脚本时,环境变量完整。launch.json从未显式设置环境变量,此前运行正常,目前只能手动为每个launch.json配置添加环境变量,需排查环境变量突然缺失的原因。
版本信息
% code --version 1.92.0 b1c0a14de1414fcdaa400695b4db1c0799bc3124 x64
- Remote - SSH版本:v0.113.1
- Perl - Language Server and Debugger for Perl版本:v2.6.2
复现步骤
- 安装VSCode
- 安装Remote - SSH扩展
- 连接至远程SSH实例
- 安装Perl - Language Server and Debugger for Perl扩展
- 在
launch.json中添加调试配置:
{ "type": "perl", "request": "launch", "name": "test.pl", "program": "/home/user/playground/test.pl", "reloadModules": true, "stopOnEntry": true, }
- 创建测试脚本:
#!/usr/bin/env perl use strict; use warnings; use open qw(:std :utf8); use Data::Dumper; while (my ($k, $v) = each(%ENV)) { print Dumper $k . '=' . $v; }
- 运行调试配置,查看输出控制台,仅显示上述少量环境变量。
内容的提问来源于stack exchange,提问作者kos
相关产品推荐
相关产品推荐

