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

尼古拉斯·福特

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

VM已配置了节点,快速,节点检查器等的典型设置,并且我能够使用node-inspector调试我的应用程序(即,节点检查器的端口已在vm中转发,并且如果我设置了使用“ node --debug-brk app.js”运行的应用程序,它在端口5858上监听,我可以导航到localhost:8080 / debug?port = 5858以开始调试)。

但是在VSC中,如果我在调试中使用“ attach”选项,则根本无法到达断点。

我在这里是否缺少某些特别的东西,或者我可以查看任何日志文件-我在OSX Yosemite上,并且VM OS在虚拟框中运行,是一个无头的OpenSuse,配备了无业游民?

注意:我已经尝试通过端口5858 telnet到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

嵌入主机:节点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.

任何帮助将非常感激?


是的,我在VM外部运行VSCode-VM无头。

端口已配置为在vagrant设置脚本中转发。但是,一位同事告诉我,可能有一项关于我们的网络适配器的公司政策被强加给我们-防止/导致我的连接问题。

但是,我尝试了另一种方法。我已经通过ssh为端口5858上的所有流量建立了隧道连接:

ssh -i myprivatekey -L 5858:localhost:5858 tempuserlocalhost -p 2222 

现在,当我开始调试应用程序(即节点--debug app.js)并使用attach选项时,调试器将清楚地附加。当它应该执行时,它没有达到app.js中的断点。

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

Error opening 'app.js' (File not found)

注意:app.js和其他代码文件保存在VM上,而是保存在我的本地计算机上,并相应配置了samba共享。也许这引起了混乱?

安德烈·温南

我已经验证了通过ssh隧穿端口5858的作用,到目前为止,您可以连接到VM内部运行的节点并使用不涉及源路径的调试器功能(源路径用于断点和步骤事件等)。问题具有源路径的是VSCode需要访问与VM中运行的节点具有相同路径的源文件。即使通过samba共享源,导致文件的绝对路径在VM内部和外部之间也可能不同。VSCode Preview的唯一解决方法是使路径相同,例如通过引入(符号)链接等。我已经在我们这边创建了一个错误,以改进源路径匹配。

Andre Weinand,Visual Studio代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Linux上托管的Visual Studio远程调试应用程序-无法枚举特定过程中正在运行的CoreCLR实例

使用Visual Studio Code的GUI调试服务器应用程序

如何在Visual Studio Code上使用web.xml调试Spring MVC Web应用程序?

使用Visual Studio代码调试节点8?

从Visual Studio Code调试vue-cli 3生成的应用程序

如何在Visual Studio Code上调试AspNet 5应用程序?

如何在Visual Studio Code中调试Angular2 TypeScript应用程序?

如何在 Visual Studio Code 中调试 TypeScript Express 应用程序

使用Visual Studio复制应用程序文件以进行调试

如何使用 Visual Studio 2017 工具链在 vscode 中调试 C++ 应用程序

如何使用Visual Studio在真实域上调试应用程序

如何使用Visual Studio 2013和Node Tools NTVS调试Node.js应用程序

如何在运行时使用Visual Studio调试Pygame应用程序

在 Visual Studio 中调试 Windows 应用程序

Visual Studio 2017,无法调试或运行应用程序

使用Visual Studio Code调试Node js

使用AngularJS进行Visual Studio Code调试

使用调试Visual Studio Code的Dotnet监视

使用Visual Studio IIS Express将VSCode调试器附加到.NET Core应用程序调试

如何使用Visual Studio 2019构建GTK +应用程序?

使用 Visual Studio 创建 Windows 8.1 商店应用程序

使用Visual Studio的1MB应用程序

使用Visual Studio通过Cordova开发混合应用程序

使用IIS部署Visual Studio Web应用程序

使用AzureDevOps更新Azure上托管的Sitecore应用程序

如何在Visual Studio中使用ASP.NET Core Web应用程序-API项目托管网页?

我可以使用Visual Studio Code来分析NodeJS应用程序吗?

如何在Visual Studio Code中为我的Electron应用程序使用$ {workspaceRoot}?

我无法使用新的应用程序链接语法打开Visual Studio Code工作区