我无法在VSCode中调试Ruby程序给出错误
ECONNREFUSED ::1:1234
在调试控制台,我相信这是相同的错误时,开始调试会话没有结束的第一个。通常,重新启动/重新启动可以解决问题。在我的情况下,我已经重新启动多次,并关闭一次电源,也遵循了几个网站上关于重置网络的帖子-没有帮助。
在关闭电源后和运行vscode之前(没有其他东西先运行),做了一个netstat -a
,它没有显示127.0.0.1:1234
的活动。
运行vscode和命令后,显示一个活动连接。
TCP 127.0.0.1:1234 XPS:0 LISTENING
netstat -a
在vscode终止后仍然报告相同的井。注意:netstat -b
显示该端口上没有活动。
我采取的最后一步是重新安装vscode,并禁用除Ruby,VSCode rdgb,VSCode ruby之外的所有扩展。结果是
Fatal exception in DebugThread loop: Only one usage of each socket address (protocol/network address/port) is normally permitted. - bind(2) for "127.0.0.1" port 1234
执行中的程序是
puts "starting"; exit
而launch.json
是
{
"name": "MAIN",
"type": "Ruby",
"request": "launch",
"cwd": "${workspaceRoot}",
"program": "${workspaceRoot}/main.rb"
},
调试其他程序(未触及和以前没有问题)产生相同的结果,但运行完成时,不处于调试模式。
我有一个类似的问题,大约2年前,经过几天的尝试多种东西,问题根本消失了,我无法确定为什么它被纠正。
在问题出现之前,只有其他远程相关的事情是运行bundler install
,同时查看一篇关于使用Gemfile
控制更新的文章。
2条答案
按热度按时间mtb9vblg1#
在写这个问题时,我查看了sysinternals,发现tcpview显示了以下内容
我使用
tcpview
杀死进程(注意主VSCODE窗口没有关闭),重新运行vscode,它给了我不确定是什么错误,但与此问题无关。
程序在调试模式下多次运行完成,因此看起来像是问题的临时解决方案。
注:使用
tcpview
终止进程后,netstat -a
不再报告127.0.1端口1234上的活动注意:当意外运行第二个调试过程而没有首先终止时,看起来是一个很好的解决方案。尝试通过启动新的调试会话并多次停止在断点来证明这一点。在任何时候我都没有得到多个连接错误。似乎可以解决问题。
p3rjfoxz2#
我使用扩展Ruby v0.28.1,VS Code插件连接Ruby LSP,Ruby Solargraph v0.24.0,Ruby的rdbg调试器支持VSCode,VSCode Ruby v0.28.0和ruby gems debug(1.8.0,1.6.3)和ruby-debug-ide。
对问题有了进一步的了解,当运行调试失败时,连接到127.0.0.1,1234但没有出现调试工具栏,程序也没有执行。连接永远不会被释放。下一次尝试给出双127.0.0.1,1234连接问题。连接永远不会释放,直到我在tcpview中这样做。
注意:在问题开始发生的同时,我开始在每次调试运行时收到警告消息,所以我不知何故搞砸了我的调试环境。因此,将不再仔细阅读这个问题,因为已经阅读了Ruby 3.2和VSCode。安装Ruby 3.1和VSCode。我现在的launch.json安装文件确实有问题,我会把它作为一个新问题来问。
感谢您的意见。问题已关闭