C# VS Code extension 2.160.4 sends unsupported SHA384/SHA512 checksums and remote line breakpoints fail
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 3/5
- Thời gian dự kiến
- 1-2 ngày
- Mức phù hợp với người mới
- 68/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- csharp, typescript
- Lĩnh vực
- devtools
Hướng nghiên cứu
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.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 3.1k
- Fork
- 738
- Merge trung bình
- 21 giờ 21 phút
- Pull request đã merge (30 ngày)
- 42
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của dotnet/vscode-csharp
-
Infrastructure Test
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
dotnet/vscode-csharp#9791 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
C# crashĐang mởBug C#DK Needs More Info Reliability Remote Extensions Roslyn LSP
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
dotnet/vscode-csharp#9807 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Editor-Formatting Resolved-Configuration Issue
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 65/100
dotnet/vscode-csharp#9804 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
untriaged
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 58/100
dotnet/vscode-csharp#9787 · 6 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
C# Dev Kit writes an untracked runfile-discovery cache into the workspaceCó thể đã có người làm @RikkiGibson đã nhận 15 ngày trước. Đang mởBug Feature - Run File
dotnet/vscode-csharp#9767 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của dotnet/vscode-csharp
Issue tương tự
-
area/frontend good first issue kind/cooldown
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
voidzero-dev/oxc-angular-compiler#511 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
langchain-ai/deepagentsjs#898 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 92/100
anomalyco/models.dev#8509 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug documentation P2 UI/UX
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 85/100
Maintainer thường phản hồi trong vòng 1 ngày