Node 应用程序的 Visual Studio Code 调试器在 next_tick.js 中的 runMicroTasks 处停止,而不是在指定的断点处停止

Node 应用程序的 Visual Studio Code 调试器在 next_tick.js 中的 runMicroTasks 处停止,而不是在指定的断点处停止

我有一个 Node 应用程序,当使用 npm run serve 运行时,以及使用 Visual Studio 调试器运行时,它都可以正常工作。

唯一的问题是,当我设置断点时,调试器不会停在设置断点的代码行上,而是停在文件 next_tick.js 中调用 _runMicrotasks() 的行上。如果我有 4 个接连的断点,那么它 4 次都会停在文件 next_tick.js 中调用 _runMicrotaks() 的同一行上,而不是停在我设置断点的代码行上。

技术规格:npm - 6.4.1,node - v8.12.0

调试器在 _runMicrotasks() 处停止时的屏幕截图

答案1

当调试器在 next_tick.js 处停止时,请在 launch.json 中的 skipFiles 中添加“/**” 即使在此之后您没有看到断点,请在调试器菜单(在 vscode 中)中打开调用堆栈下拉菜单并选择最顶部的调用堆栈条目

答案2

我终于找到了自己问题的答案。基本上发生的事情是,默认情况下,调用堆栈指向比我实际放置断点的顶部更深的级别。因此,它没有带我到断点,而是带我到调用堆栈中更深的级别。

解决方案只需单击侧面的调试器视图中的调用堆栈顶部(参​​见屏幕截图)。

如何让调试器转到调用堆栈的顶部

此外,对于后续断点,如果调试器始终停在 next_tick.js 文件处,则在调试器菜单的调用堆栈中右键单击最顶层的条目,然后单击切换跳过此文件. 这可确保调试器不会跳过您放置断点的顶层文件。

相关内容