Skip to content

[Windows Debug] 完善真实调试产品链路与高级能力 #466

Description

@1lck

背景

PR #381 已完成 Windows Debug Host Adapter 的基础接通:Windows 原生层负责 Debug Adapter 进程、stdio transport 和 session 生命周期,DAP framing、请求匹配和基础状态机复用共享 lithe-core

后续需要在此基础上补齐真实产品链路和高级调试能力。本 Issue 不重新实现 Debug Core,也不复制 raw DAP 状态机。

目标

把当前可用的基础调试通道完善为可用于日常开发的 Windows Debug 产品能力。

工作范围

1. 真实语言和项目调试链路

  • 完成 Java/JDWP adapter 的真实 launch/attach 验证。
  • 衔接 Java/Maven/Spring Boot 等项目的配置解析和启动计划。
  • 完善 launch.json 配置变量解析、默认工作目录和错误提示。
  • 明确 launch 与 attach 的 debuggee 终止策略,并覆盖项目关闭、切换和多窗口场景。

2. Adapter 高级协议能力

  • 支持 adapter-requested runInTerminal
  • 支持取消和超时后的 native/Core/React 状态收敛。
  • 补齐 exception、function、data breakpoint 等能力的 Windows UI 和 host facade。
  • 完善变量编辑、watch、evaluate 的错误和 stale-result 处理。

3. Adapter 发现与配置体验

  • 提供 adapter 可执行文件发现、校验和诊断信息。
  • 对缺失 adapter、版本不兼容、权限不足和启动失败给出可行动提示。
  • 避免依赖开发机绝对路径或 shell 拼接命令。

4. 端到端验证

  • 使用确定性 fake adapter 覆盖基础生命周期回归。
  • 增加真实 adapter 的 Windows 集成测试,不依赖开发机预装语言工具链。
  • 覆盖 launch、attach、stopOnEntry、正常退出、异常退出、快速重启、workspace 切换和多 session 隔离。
  • 验证 Windows CI 中 frontend、Rust host 和 shared Core 的相关测试均被实际执行。

非目标

  • 不在 Windows 重新实现 DAP framing、请求状态机或 Debug domain model。
  • 不把 React 变回 raw DAP 协议实现层。
  • 不重写现有 Debug UI,只补齐产品化所需的交互和状态。

验收标准

  • 至少一个真实 Windows 项目可以稳定完成 launch 和 attach 调试。
  • adapter 的高级请求、错误、取消和超时不会留下进程、reader task 或 Core session。
  • launch/attach、项目关闭和多窗口场景的终止策略符合预期。
  • 关键能力有稳定的 Windows 自动化测试和可复现的失败诊断。
  • 共享 Core 与 Windows host 的职责边界保持不变。

关联:PR #381,关闭并承接自 #374

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1尽快处理:使用体验大幅下降,但通常仍可继续使用enhancementNew feature or requestwindowssomething related to windows strongly

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions