microsoft / microsoft/vscode-cpptools
"miDebuggerPath" completely ignored when "debugServerPath" is used
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 6.2k
- Forks
- 1.7k
- Avg merge
- 14h 46m
- Merged PRs (30d)
- 61
Description
Describe the bug
- OS and Version: Windows/Linux (Version does not matter)
- VS Code Version: Does not matter.
- C/C++ Extension Version: UPSTREAM (0.21.0)
- Other extensions you installed (and if the issue persists after disabling them): Does not have any influence.
- A clear and concise description of what the bug is:
When you specify a debugServerPath and a debugServerArgs, miDebuggerPath and miDebuggerArgs are completely ignored. Furthermore you HAVE to specify a miDebuggerServerAddress even tho that is not necessarily required as you can specify this via miDebuggerArgs
To Reproduce
Please include a code sample and launch.json configuration.
See the launch.jsonbelow:
{
"version": "0.2.0",
"configurations": [
{
"name": "COM Example",
"type": "cppdbg",
"request": "launch",
"program": "${workspaceRoot}/target/thumbv7em-none-eabihf/debug/examples/com",
"args": [],
"miDebuggerServerAddress": "localhost:2331",
"stopAtEntry": true,
"cwd": "${workspaceRoot}",
"environment": [],
//"externalConsole": true,
"linux": {
"MIMode": "gdb"
},
"osx": {
"MIMode": "gdb"
},
"windows": {
"MIMode": "gdb",
"setupCommands": [{
"text": "load"
}],
//"preLaunchTask": "cargo build com",
"debugServerPath": "C:\\Program Files (x86)\\SEGGER\\JLink_V640\\JLinkGDBServerCL.exe",
"debugServerArgs": "-select USB -device nRF52840_xxAA -endian little -if SWD -speed 4000 -noir -LocalhostOnly",
"miDebuggerPath": "C:\\Program Files (x86)\\GNU Tools ARM Embedded\\8 2018-q4-major\\bin\\arm-none-eabi-gdb.exe",
"miDebuggerArgs": "-q -x debug.gdb target/thumbv7m-none-eabi/debug/examples/com",
}
}
]
}
Steps to reproduce the behavior:
- Use the
launch.jsonabove.
Additional context
I tried finding the source code that uses the miDebuggerPath etc, but I can't even locate the variable in this repo. So I can't even see how this extension ever uses that value. If I could, I would fix it myself, but the entire extension is really intransparent, including all the config explanations (especially the problemMatcher).
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing how the cppdbg launch configuration parses the launch.json example, searching for debugServerPath, debugServerArgs, miDebuggerPath, and miDebuggerArgs. Reproduce the configuration on Windows or Linux and determine why the debugger path and arguments are ignored. Done means both settings work with a debugServerPath without requiring miDebuggerServerAddress when the address is supplied through miDebuggerArgs.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- devtools
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100