Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

C# VS Code extension 2.160.4 sends unsupported SHA384/SHA512 checksums and remote line breakpoints fail

Aperta
#9,802 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
68/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp, typescript
Ambito
devtools

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Debugger untriaged

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

  1. Install C# extension 2.160.4 and C# Dev Kit 3.40.204.
  2. Attach to a .NET process in a Linux ARM64 Docker container using pipeTransport.
  3. Set a line breakpoint in loaded application code.
  4. Execute the affected code.
  5. Observe that the breakpoint remains solid red but never triggers.
  6. Enable debugger protocol logging and observe that setBreakpoints fails with Incorrect breakpoint request format.
  7. Downgrade only the C# extension to 2.140.9.
  8. 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.

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.supportedChecksumAlgorithms before sending setBreakpoints.
  • When that capability is absent, send only checksum algorithms supported by the negotiated Debug Adapter Protocol version.
  • Reflect a failed setBreakpoints response 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.

Lingua principale
TypeScript
Stelle
3.1k
Fork
736
Merge medio
21h 21m
PR unite (30g)
42

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di dotnet/vscode-csharp

Tutte le issue di dotnet/vscode-csharp

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.