sum*_*wal 5 node.js visual-studio-code
我在launch.json文件中添加了配置,其中包含以下详细信息:
{
"name": "Attach"
"type": "node",
// TCP/IP address. Default is "localhost".
"address": "localhost",
// Port to attach to.
"port": 5858
}
Run Code Online (Sandbox Code Playgroud)
现在我使用以下命令启动我的应用程序: node --debug-brk ./bin/www
当我进入VSCode并Attach在顶部的调试菜单中选择并单击播放按钮.它附加,但当我去浏览器并打开一个页面时,它不是我index.js文件中的断点或处理函数.你能帮忙解决可能出现的问题吗?
node 中的断点有两个问题(这些问题不是 VSCode 特有的,但您也可以在 node-inspector 中看到它们):
如果您在应用程序的启动代码中设置断点并使用 --debug 启动节点(与 --debug-brk 相反),节点会立即启动并在 VSCode 有机会注册断点之前执行您的启动代码。因此,如果您需要调试启动代码,请使用 --debug-brk 标志,因为它允许 VSCode 在节点启动应用程序之前设置断点。
Node 不会在加载时完全解析源文件,而是延迟解析闭包(回调等),直到它们的代码第一次被命中。因此,在回调上设置的断点并不总是被节点正确注册,因为它尚未解析代码。可以通过使用 --nolazy 标志启动节点来禁用这种“懒惰”行为。
在 VSCode 的下一个版本(0.4.0)中,我们尝试如下解决这些问题:
VScode 将始终使用 --debug-brk 标志启动节点,但如果用户未指定“stopOnEntry: true”,则会隐藏第一站并继续。这将避免在启动代码中丢失断点的问题。
如果断点设置在 node 没有解析的代码中,node 将在解析代码中的下一个可能的位置注册它们。由于这些“实际”位置由节点返回给客户端,因此 VSCode 能够显示这些位置。因此,用户将看到在未解析的回调中设置的断点“跳”到更远的位置,他将更好地理解为什么调试器没有在请求的位置停止。此外,我们在断点视图中添加了一个“重新应用”按钮,这使得清除和设置所有断点变得非常容易。
| 归档时间: |
|
| 查看次数: |
5746 次 |
| 最近记录: |