在最新的Visual Studio代码更新之后,我的Perl扩展失败,输出如下:
""C:\StrawberryPerl\perl\bin\perl.exe" "-d" "X:\Perl\a.pl""
Unable to connect to remote host: localhost:57937
Compilation failed in require.
at X:\Perl\a.pl line 0.
main::BEGIN() called at X:\Perl\a.pl line 0
eval {...} called at X:\Perl\a.pl line 0
BEGIN failed--compilation aborted.
at X:\Perl\a.pl line 0.
字符串
我相信原因是新的“内置端口转发”。我想,我的Perl extension使用端口5000,但我的VSC settings.json不包含一行"port": 5000
:
{
"launch": {
"version": "0.2.0",
"configurations": [
{
"type": "perl",
"request": "launch",
"name": "Perl-Debug local",
"console": "externalTerminal",
"program": "${file}",
"exec": "C:\\StrawberryPerl\\perl\\bin\\perl.exe",
"execArgs": [],
"root": "${workspaceRoot}/",
"inc": [],
"args": [],
"env": {},
"debugRaw": false,
"debugLog": false,
"stopOnEntry": false,
"sessions": "single"
}
],
"compounds": []
},
"terminal.external.windowsExec": "X:\\Perl\\vsc_cmd.cmd",
"workbench.editor.tabSizing": "shrink",
"editor.accessibilitySupport": "off",
}
型
有办法修好吗?
我可以撤销“内置端口转发”吗?
1条答案
按热度按时间polhcujo1#
我认为你有几个选择。你可以使用Windows Subsystem for Linux,其中这个扩展(Raix调试器)仍然以你所描述的方式工作。端口转发必须在WSL中以不同的方式处理。Perl::JavaServer调试器也可以在WSL中工作。
如果你想继续在原生Windows中使用Raix调试器,下面的配置在最新版本的vscode中也适用。将这些行添加到你的launch.json中:
字符串
然后,当你启动调试器时,它将在“watch”模式下运行,等待Perl进程连接到扩展。要运行一个将连接的脚本,你可以使用这样的东西:
型
扩展的作者也建议你在以这种方式运行时使用
Devel::vscode
,但我还没有测试过。我通常也建议使用Perl Navigator来支持语言服务器(我是维护者),特别是在Windows中运行时。从长远来看,我想在Navigator中添加调试器支持,同时继续支持Windows。