Description
Environment data
- debugpy version: 1.8.6
- OS and version: MacOS (ARM) 14.6.1
- Python version: 3.10.6
- Using VS Code or Visual Studio: VS Code
Actual behavior
I'm using Pants to run python tests. The program behaves as expected (starts the test with pdb and waits for client connection):
➜ pants test --debug-adapter example_test.py
12:16:25.45 [INFO] Launching debug adapter at '127.0.0.1:5678', which will wait for a client connection...
I would like to use a launch configuration with a preLaunchTask
to make debugging easy. However, VS Code does not behave as expected with the background task. I have tried seemingly every possible combination of isBackground
, problemMatcher.background
, and other fields. Below is what I believe should work according to documentation. When the "Pants: Debug Test" launch configuration is triggered, it calls the correct shell command and correctly waits for the "Launching debug adapter" endPattern to be printed, but then fails with a vague popup
launch.json
:
{
"version": "0.2.0",
"configurations": [
{
"name": "Pants: Debug Test",
"preLaunchTask": "Pants Debug Test (Current File)",
"type": "debugpy",
"request": "attach",
"pathMappings": [
{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}
],
"connect": {
"host": "localhost",
"port": 5678
}
}
]
}
tasks.json
:
{
"version": "2.0.0",
"tasks": [
{
"label": "Pants Debug Test (Current File)",
"type": "shell",
"command": "pants test --debug-adapter ${file} ",
"group": "test",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared",
"showReuseMessage": false,
"clear": true
},
"isBackground": true,
"problemMatcher": {
"owner": "pants",
"source": "pytest",
"fileLocation": "relative",
"background": {
"activeOnStart": true,
"beginsPattern": ".",
"endsPattern": ".*Launching debug adapter.*",
},
"pattern": [
{
"regexp": ".",
"file": 1,
"location": 2,
"message": 3
}
]
}
}
]
}
Expected behavior
PreLaunchTask to run, and debugpy to attach to remote configuraiton
Steps to reproduce:
Above launch.json/task.json and a sample pants project