【发布时间】:2015-07-19 04:07:21
【问题描述】:
我在使用 Visual Studio Code 调试我的应用程序时寻求帮助,我的应用程序保存在由 Oracle Virtual Box 托管的虚拟机中。
VM 已经配置了典型的 node、express、node-inspector 等设置,我能够使用 node-inspector 调试我的应用程序(即 node-inspector 的端口已在 vm 中转发,如果我将我的应用设置为使用“node --debug-brk app.js”运行,它侦听端口 5858,我可以导航到 localhost:8080/debug?port=5858 以开始调试)。
但是在 VSC 中,如果我在调试中使用“附加”选项,我根本无法到达断点。
我在这里遗漏了什么特别的东西,或者有什么我可以查看的日志文件 - 我在 OSX Yosemite 上,并且在虚拟框中运行的 VM 操作系统是一个无头 OpenSuse,配置有 vagrant?
注意:我尝试通过端口 5858 远程登录到虚拟机,但我从虚拟机内部得到了不同的响应到本地机器本身,如下所示:
虚拟机内部:
telnet 127.0.0.1 5858
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Type: connect
V8-Version: 3.14.5.9
Protocol-Version: 1
嵌入主机:节点 v0.10.32 内容长度:0
在虚拟机之外:
telnet 127.0.0.1 5858
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
任何帮助将不胜感激?
是的,我在 VM 之外运行 VSCode - VM 是无头的。
端口已配置为在 vagrant 配置脚本中转发。然而,一位同事告诉我,可能有一项与我们的网络适配器有关的公司政策强制我们执行 - 防止/导致我的连接问题。
但是我尝试了不同的方法。我已经通过 ssh 为端口 5858 上的所有流量建立了隧道连接:
ssh -i myprivatekey -L 5858:localhost:5858 tempuserlocalhost -p 2222
现在,当我开始调试应用程序(即 node --debug app.js)并使用调试器明确附加的附加选项时。不过,它没有在 app.js 中达到我的断点,但它应该这样做。
实际上,如果我暂停调试器,我会得到一个局部变量列表和一个调用堆栈,但会显示以下错误:
Error opening 'app.js' (File not found)
注意:app.js 和其他代码文件不保存在 VM 上,它们保存在我的本地计算机上,并相应配置了 samba 共享。也许这是造成混乱的原因?
【问题讨论】:
标签: node.js visual-studio-code