C# VS Code extension 2.160.4 sends unsupported SHA384/SHA512 checksums and remote line breakpoints fail
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 68/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- csharp, typescript
- Área
- devtools
Línea de trabajo
Start at the debugger client paths handling the initialize response and setBreakpoints request, using the protocol log and the listed reproduction steps to trace checksum selection. Done means unsupported checksum algorithms are not sent to the remote adapter, and a failed setBreakpoints response makes the breakpoint unverified with the adapter error visible.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Environment data
dotnet --info output:
.NET SDK: 10.x
Target CLR Version: 10.0.1226.42308
Runtime Environment:
OS: Ubuntu
OS Version: 24.04
Architecture: ARM64
VS Code version: 1.138.0
C# Extension version: 2.160.4
C# Dev Kit version: 3.40.204
Remote vsdbg version: 18.10.10709.3
Host OS: macOS ARM64
C# logs
C# output window contents:
The debugger attaches successfully, but setBreakpoints fails:
-> (C) {
"command": "setBreakpoints",
"arguments": {
"source": {
"checksums": [
{ "algorithm": "SHA1", "checksum": "[redacted]" },
{ "algorithm": "SHA256", "checksum": "[redacted]" },
{ "algorithm": "SHA384", "checksum": "[redacted]" },
{ "algorithm": "SHA512", "checksum": "[redacted]" },
{ "algorithm": "SHA1", "checksum": "[redacted]" },
{ "algorithm": "SHA256", "checksum": "[redacted]" },
{ "algorithm": "SHA384", "checksum": "[redacted]" },
{ "algorithm": "SHA512", "checksum": "[redacted]" }
]
},
"lines": [18],
"breakpoints": [{ "line": 18 }],
"sourceModified": false
},
"type": "request"
}
<- (E) {
"event": "output",
"body": {
"category": "telemetry",
"output": "VS/Diagnostics/Debugger/vsdbg/CommandFailed",
"data": {
"VS.Diagnostics.Debugger.vsdbg.ErrorCode": 3001,
"VS.Diagnostics.Debugger.vsdbg.Command": "setBreakpoints",
"VS.Diagnostics.Debugger.vsdbg.TargetCLRVersion": "10.0.1226.42308",
"VS.Diagnostics.Debugger.vsdbg.AdapterId": "coreclr",
"VS.Diagnostics.Debugger.vsdbg.Distribution.Version": "24.04",
"VS.Diagnostics.Debugger.vsdbg.Distribution.Name": "ubuntu",
"VS.Diagnostics.Debugger.vsdbg.OSFamily": "Linux",
"VS.Diagnostics.Debugger.vsdbg.Version": "18.10.10709.3"
}
}
}
<- (R) {
"success": false,
"command": "setBreakpoints",
"message": "Incorrect breakpoint request format."
}
The adapter's initialize response advertises:
"supportedChecksumAlgorithms": ["MD5", "SHA1", "SHA256"]
Steps to reproduce
- Install C# extension 2.160.4 and C# Dev Kit 3.40.204.
- Attach to a .NET process in a Linux ARM64 Docker container using
pipeTransport. - Set a line breakpoint in loaded application code.
- Execute the affected code.
- Observe that the breakpoint remains solid red but never triggers.
- Enable debugger protocol logging and observe that
setBreakpointsfails withIncorrect breakpoint request format. - Downgrade only the C# extension to 2.140.9.
- Repeat the same debugging session and observe that line breakpoints work.
Expected behavior
The debugger should install and trigger line breakpoints.
The C# debugger client should send only checksum algorithms listed in the adapter's supportedChecksumAlgorithms capability. In this case, it should not send SHA384 or SHA512.
If setBreakpoints fails, the breakpoint should be shown as unverified with the adapter error instead of remaining solid red.
Actual behavior
C# extension 2.160.4 sends SHA384 and SHA512 checksums even though the remote adapter advertises support for only MD5, SHA1 and SHA256.
The remote debugger rejects the entire setBreakpoints request, so no line breakpoint is installed.
The breakpoint is still displayed as solid red, hiding the failure.
Exception breakpoints and System.Diagnostics.Debugger.Break() continue to work because they use different debugger requests.
Downgrading only the C# extension from 2.160.4 to 2.140.9 fixes the issue. No application, source, PDB, Docker, SDK, runtime, Dev Kit or remote debugger changes are required.
Workaround
Temporarily disable 'Debug: Require Exact Source' setting under 'Preferences->Settings'
Additional context
This appears to be a regression in the debugger client bundled with C# extension 2.160.4.
Suggested fix:
- Filter generated checksums against
initialize.supportedChecksumAlgorithmsbefore sendingsetBreakpoints. - When that capability is absent, send only checksum algorithms supported by the negotiated Debug Adapter Protocol version.
- Reflect a failed
setBreakpointsresponse in the breakpoint's verification state.
The duplicate checksum entries appear to represent the source file's raw CRLF content and the editor-normalized LF content. Older debugger versions accepted duplicate SHA1/SHA256 entries, so the likely regression is the newly included unsupported SHA384/SHA512 algorithms rather than the duplication itself.
- Lenguaje dominante
- TypeScript
- Estrellas
- 3.1k
- Forks
- 740
- Merge medio
- 1 d 3 h
- PR fusionados (30 d)
- 52
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de dotnet/vscode-csharp
-
Remove temporary .NET 11 CI container digest pinQuizá libre de nuevo Un pull request para esta issue se cerró sin fusionarse. AbiertoInfrastructure Test
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
dotnet/vscode-csharp#9791 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Error in project blazorAbiertoC#DK untriaged
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
dotnet/vscode-csharp#9911 ·
Los mantenedores suelen responder en 1 día
-
reporteAbiertoC#DK untriaged
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
dotnet/vscode-csharp#9910 ·
Los mantenedores suelen responder en 1 día
-
aAbiertoC#DK untriaged
Dificultad 3/5 1-2 días Aptitud para principiantes 25/100
dotnet/vscode-csharp#9901 ·
Los mantenedores suelen responder en 1 día
-
Debugger untriaged
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
dotnet/vscode-csharp#9891 · 6 comentarios ·
Los mantenedores suelen responder en 1 día
Todos los issues de dotnet/vscode-csharp
Issues similares
-
VS Code extension: clickable file links in chat drop the :line suffix, never jump to the lineAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
MoonshotAI/kimi-code#4398 ·
Los mantenedores suelen responder en 1 día
-
Xiaomi Mimo语音识别服务异常Abiertopending triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
Los mantenedores suelen responder en 1 día
-
package-lock.json : les binaires natifs macOS et Linux de unrs-resolver ont disparu depuis #1823Abiertobug dependencies
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
AxaFrance/design-system#2064 ·
Los mantenedores suelen responder en 3 días
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100