【问题标题】:Visual Studio Code redirect input on debugVisual Studio Code 在调试时重定向输入
【发布时间】:2015-09-30 10:29:24
【问题描述】:

我的应用程序正在从标准输入读取数据:

var input = process.stdin.read();

是否可以将 Visual Studio Code 配置为在调试时重定向输入?

所以它等于这个命令行:

node app.js < input.txt

此配置无效,调试未开始。

{
  "name": "Launch",
  "type": "node",
  "program": "app.js",
  "stopOnEntry": false,
  "args": [
    "<",
    "input.txt"
  ]
}

【问题讨论】:

  • 仅当命令和参数由 shell 解释时,才支持使用 '
  • 在重定向标准输入时设置 "console": "integratedTerminal" 会引发错误:Error processing 'configurationDone' request. The handle is invalid. console 属性应该设置为 internalConsole 之类的东西。

标签: node.js visual-studio-code


【解决方案1】:

args 数组通常用于 Node.js 启动和 V8 引擎运行时标志。

  --no-deprecation
  --throw-deprecation
  --trace-deprecation
  --v8-options
  --max-stack-size=val
  --icu-data-dir=dir

  --enable-ssl2
  --enable-ssl3

在命令行中输入 node --v8-options 以查看 V8 运行时标志的完整列表。

我建议您使用命令行中的调试标志启动您的应用程序,这样您就可以指示它采用stdin,然后将调试器附加到您正在运行的进程中。

> node --debug app.js
Debugger listening on port 5858

您可以在您的 launch.json 文件中有多个配置。添加或修改一个作为您的“附加”调试配置。对于附加,必须指定“地址”和“端口”(请注意,“地址”必须设置为“本地主机”,因为尚不支持远程调试)。端口应该是上面调试启动过程返回的那个。

一旦您的应用程序在指定的端口上运行,您可以在播放/运行图标旁边的下拉菜单中更改调试目标。

【讨论】:

  • 这看起来很乱,我更喜欢上面评论中@AndreWeinland 给出的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-29
相关资源
最近更新 更多