Surface `winapp run --debug-output` / `--symbols` for crash triage
Maintainer thường phản hồi trong vòng 8 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 35/100
- Loại issue
- Tính năng
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript, vscode
- Lĩnh vực
- developer-experience, devtools
Hướng nghiên cứu
Bắt đầu với src/run-options.ts và validateRunOptions để hiểu các trường debugOutput và symbols hiện có cũng như các xung đột của chúng. Sau đó, kiểm tra resolveDebugConfiguration và WinAppDebugAdapterFactory trong khi so sánh hai workflow được đề xuất. Công việc được xem là hoàn tất khi một workflow đã được chọn và giao diện UI, hành vi xác thực cũng như tài liệu của workflow đó nhất quán với quyết định này.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Background
winappcli 0.6.1 has two winapp run options the extension never surfaces:
--debug-output— winapp attaches itself as the debugger. StreamsOutputDebugStringand first-chance exceptions inline, filtering framework noise (WinUI, COM, DirectX internal traces) from the console while writing everything to a log file. On crash it captures a minidump and analyzes it automatically: managed (.NET) crashes yield exception type, message, and a stack with source file and line numbers resolved from PDBs in the build output; native (C++/WinRT) crashes yield module names and offsets. For WinUI it additionally runs automatic stowed-exception triage, decoding the0xC000027Bexception and the nativeMicrosoft.UI.Xaml → CXcpDispatcher → CoreMessagingXP → CLR hostdispatch chain that ordinary stacks lose.--symbols— downloads PDBs from the Microsoft public symbol server for real native function names, plus the OS symbols (combase.dll) the stowed-exception decode needs. Only meaningful with--debug-output.
See winappcli docs/debugging.md ("Scenario E").
Why this needs its own design decision
This is an alternative workflow, not an option on the existing one:
- Windows permits one debugger per process, so winapp's diagnostics and VS Code's breakpoints are mutually exclusive by construction.
- The CLI forbids
--debug-outputwith--json, whichWinAppDebugAdapterFactorydepends on to parse the launched PID.
So it cannot be bolted onto the existing launch-and-attach path. It answers "why did my app crash?", whereas the current adapter answers "let me step through my code" — and the WinUI triage specifically targets the case where breakpoints are useless because the stack has already unwound.
Options to decide between
- (A) Advanced palette command only — expose the toggles in a
winapp runoptions prompt; reject them inresolveDebugConfigurationwith a pointer to that command. Simplest, no adapter changes, but leaves WinUI crash triage behind a palette flow users won't find when their app just crashed under F5. - (B) A non-attach "diagnostics" debug mode — e.g.
"attach": false/"mode": "diagnostics"on thewinappdebug type. The adapter skips--json/PID parsing and the child debug session entirely, streams stdout to the WinApp output channel, and ends the session when the process exits. Gives WinUI developers a "crash-triage F5". Costs a real adapter branch and a second set of docs.
Prerequisite
Tracked as a follow-up to the winapp run project-mode work. That work introduces src/run-options.ts with WinAppRunOptions (already including debugOutput/symbols fields) and validateRunOptions (already encoding the --debug-output + --json and --debug-output + --no-launch conflicts), so this issue should be a UI-surface change only.
- Ngôn ngữ chính
- TypeScript
- Star
- 13
- Fork
- 4
- Merge trung bình
- 6 ngày 6 giờ
- Pull request đã merge (30 ngày)
- 8
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- 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 microsoft/WinAppVSCE
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
microsoft/WinAppVSCE#262 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
microsoft/WinAppVSCE#219 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 8 ngày
-
documentation
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
microsoft/WinAppVSCE#160 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
microsoft/WinAppVSCE#159 ·
Maintainer thường phản hồi trong vòng 8 ngày
-
enhancement
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 68/100
microsoft/WinAppVSCE#310 ·
Maintainer thường phản hồi trong vòng 8 ngày
Tất cả issue của microsoft/WinAppVSCE
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
polarsource/polar#15580 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
accepted bug via-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 69/100
pingdotgg/t3code#20931 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug/1-unconfirmed kind/bug
Độ 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
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
ranxianglei/billion-context#3583 ·
Maintainer thường phản hồi trong vòng 1 ngày