功能指南 / 调试与 DAP
调试与 DAP
灵犀指内核内置 DAP(Debug Adapter Protocol)客户端,通过 stdio 与任意兼容的调试适配器通信,为 IDE 与 AI 提供断点调试能力。断点位置、变量状态等调试数据同时可作为 AI 定位问题的输入。
工作原理
- 调试适配器以子进程方式启动,通过标准输入输出按
Content-Length帧交换 JSON 消息。 - 后台读循环持续解析适配器输出:响应按请求序号分发,事件入队等待消费,支持等待指定事件(如
stopped)。 - 每个请求带 15 秒超时,适配器无响应时不会挂死调用方。
- 启动后自动完成
initialize握手;适配器进程随会话结束自动回收,Windows 下静默启动,不会弹出控制台窗口。 - 适配器的 stderr 默认忽略,避免诊断输出污染协议流。
已验证的调试能力
| 能力 | 说明 |
|---|---|
| 断点管理 | 按文件与行号设置、列出、清除断点 |
| 调用栈 | 程序暂停时获取完整 stack trace 与帧 ID |
| 变量检视 | 展开当前作用域的变量列表 |
| 表达式求值 | 在指定栈帧上下文中求值任意表达式 |
| 单步 / 继续 | next 单步执行,continue 运行至下一断点或结束 |
| 事件通知 | 程序停止、退出等事件实时入队,可供等待消费 |
调试流程
1
设置断点:在目标文件按行号设置断点,可随时列出或清除全部断点。
2
启动会话:启动调试适配器并运行至断点处,程序暂停后查看调用栈(stack trace)。
3
检视变量:展开当前作用域的变量列表,或用表达式求值(evaluate)计算任意表达式,如 x + y。
4
单步与继续:next 单步执行,continue 运行至下一个断点或程序结束。
内核已对 Python 调试适配器完成「断点 → 调用栈 → 变量 → 求值 → 单步 → 继续」全流程的端到端验证,覆盖断点命中后的作用域解析(从栈帧到作用域再到变量列表的完整链路)。会话结束后可一次性清除全部断点。
接入新的调试适配器
任何实现了 DAP 协议的调试适配器都可以接入:只需提供适配器的可执行文件路径与启动参数,内核即可以子进程方式拉起并完成初始化握手。帧头解析、请求分发与事件归集全部由内核完成,IDE 侧无需关心协议细节。其他语言接入对应的 DAP 适配器(如 Node、Go、Rust 各自的 adapter)即可获得与上述一致的能力。
接入新适配器后,建议先用一个简单脚本验证断点命中与变量读取,再投入日常调试。
上述调试能力同时通过内核 API 暴露,可供 IDE 面板与 AI 工具调用,详见内核 API。与集成终端中的子进程一样,调试适配器进程也受内核统一管理。
✦
调试过程中,可以随时把断点处的变量状态与调用栈贴到 AI 对话中,让模型基于真实运行时状态定位问题。
本文对你有帮助吗?