Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

Surface `winapp run --debug-output` / `--symbols` for crash triage

Đang mở
#249 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

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

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ả

enhancement

Background

winappcli 0.6.1 has two winapp run options the extension never surfaces:

  • --debug-output — winapp attaches itself as the debugger. Streams OutputDebugString and 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 the 0xC000027B exception and the native Microsoft.UI.Xaml → CXcpDispatcher → CoreMessagingXP → CLR host dispatch 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-output with --json, which WinAppDebugAdapterFactory depends 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 run options prompt; reject them in resolveDebugConfiguration with 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 the winapp debug 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

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. 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.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/WinAppVSCE

Tất cả issue của microsoft/WinAppVSCE

Issue tương tự

Thêm issue về TypeScript

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.