如何使vscode不等待完成preLaunchTask? [英] How to make vscode not wait for finishing a preLaunchTask?
问题描述
我在Visual Studio代码中有一个调试设置,在其中运行一个外部二进制文件,该文件可以执行我的JS文件(使用duktape).调试适配器目前仅支持附加请求(不启动),因此我必须先运行二进制文件,然后才能调试JS脚本.
I have a debug setup in Visual Studio code where I run an external binary which can execute my JS files (using duktape). The debug adapter currently only supports attach requests (not launch) so I have to run the binary before I can debug the JS scripts.
为了避免手动启动应用程序,我为其创建了一个任务,并将其设置在launch.json文件中:
In order to avoid having to start the application manually I created a task for it and set that in my launch.json file:
{
"version": "0.2.0",
"configurations": [{
"name": "Attach MGA",
"type": "duk",
"preLaunchTask": "debug mga",
"request": "attach",
"address": "localhost",
"port": 9091,
"localRoot": "${workspaceRoot}",
"stopOnEntry": false,
"debugLog": true
}]
}
任务的定义如下:
{
"version": "0.1.0",
"command": "<absolute path to>/mga",
"isShellCommand": false,
"showOutput": "always",
"suppressTaskName": true,
"tasks": [{
"taskName": "debug mga",
"args": ["--debugger", "main.json"]
}]
}
现在的问题是vscode等待启动前任务完成,而应用程序等待调试器附加.赶上22..
The problem is now that vscode waits for the pre launch task to finish, while the application waits for a debugger to attach. Catch 22.
如何避免vscode等待启动前的任务完成?
How can I avoid that vscode waits for the pre launch task to finish?
更新:
与此同时,我已经阅读了 vscode任务页面,并提出了此任务配置.仍然对我不起作用
Meanwhile I have read up on the vscode task page and came up with this task configuration. Still, it doesn't work for me
{
"version": "2.0.0",
"tasks": [
{
"label": "launch-mga",
"type": "shell",
"command": "<absolute path to>/mga",
"args": [
"config/main.json",
"--debugger"
],
"isBackground": true,
"problemMatcher": {
"owner": "custom",
"pattern": {
"regexp": "_____"
},
"background": {
"activeOnStart": true,
"beginsPattern": "^.*Waiting for debug connection.*$",
"endsPattern": "^.*blah.*$"
},
},
}
]
}
启动的应用程序将打印等待消息,然后无限期地等待调试连接.也许问题出在用C ++编写的应用程序(有点像终端应用程序那样的Node.js)?
The launched application prints the wait message and then waits endlessly for a debug connection. Maybe the problem has to do with the application (which is kinda Node.js like terminal app), written in C++?
推荐答案
这对我有用.
请注意,尽管这些都不重要,但所有这些都是必需的:
Note all these are required, even though none are important:
-
problemMatcher.pattern.regexp
-
problemMatcher.pattern.file
-
problemMatcher.pattern.location
-
problemMatcher.pattern.message
-
problemMatcher.background.activeOnStart
-
problemMatcher.background.beginsPattern
-
problemMatcher.background.endsPattern
problemMatcher.pattern.regexp
problemMatcher.pattern.file
problemMatcher.pattern.location
problemMatcher.pattern.message
problemMatcher.background.activeOnStart
problemMatcher.background.beginsPattern
problemMatcher.background.endsPattern
{
// See https://go.microsoft.com/fwlink/?LinkId=733558
// for the documentation about the tasks.json format
"version": "2.0.0",
"tasks": [
{
"label": "build-extras",
"type": "shell",
"isBackground": true,
"command": "./script/build-extras",
// This task is run before some debug tasks.
// Problem is, it's a watch script, and since it never exits, VSCode
// complains. All this is needed so VSCode just lets it run.
"problemMatcher": [
{
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
],
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".",
}
}
]
}
]
}
这篇关于如何使vscode不等待完成preLaunchTask?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!