小编Nic*_*ord的帖子

使用Visual Studio Code调试VM上托管的节点应用程序

我正在寻找一些使用Visual Studio Code调试我的应用程序的帮助,我的应用程序保存在由Oracle Virtual Box托管的虚拟机中.

已经为VM配置了node,express,node-inspector等的典型设置.我可以使用node-inspector调试我的应用程序(即节点检查器的端口已在vm内转发,如果我设置了我的运行"node --debug-brk app.js"的应用程序,它侦听端口5858,我可以导航到localhost:8080/debug?port = 5858开始调试).

但是在VSC中如果我在调试中使用"attach"选项,我根本无法进入断点.

有什么特别的东西我在这里缺少或者是否有我可以看到的任何日志文件 - 我在OSX Yosemite上并且VM OS在虚拟盒中运行是一个无头的OpenSuse,配备了vagrant?

注意:我已经尝试通过端口5858远程登录到VM,我从VM内部获得了与本地计算机本身不同的响应,如下所示:

在VM内部:

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
Run Code Online (Sandbox Code Playgroud)

嵌入主机:节点v0.10.32内容长度:0

在VM之外:

telnet 127.0.0.1 5858
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Connection closed by foreign host.
Run Code Online (Sandbox Code Playgroud)

任何帮助将非常感激?


是的我在VM外部运行VSCode - 虚拟机是无头的.

端口已配置为在vagrant配置脚本内转发.然而,一位同事告诉我,可能有一项公司政策被强制要求我们与我们的网络适配器有关 - 防止/导致我的连接问题.

但是我尝试了不同的方法.我通过ssh为端口5858上的所有流量隧道连接:

ssh -i myprivatekey -L 5858:localhost:5858 tempuserlocalhost -p 2222 
Run Code Online (Sandbox Code Playgroud)

现在,当我开始调试应用程序(即节点--debug app.js)并使用附加选项时,调试器显然会附加.虽然应该这样做,但它并没有在app.js中击中我的断点.

实际上,如果我暂停调试器,我会得到一个局部变量列表和一个调用堆栈,但显示以下错误:

Error opening 'app.js' (File not found) …
Run Code Online (Sandbox Code Playgroud)

node.js visual-studio-code

9
推荐指数
2
解决办法
5179
查看次数

标签 统计

node.js ×1

visual-studio-code ×1