[{"data":1,"prerenderedAt":337},["ShallowReactive",2],{"doc-\u002Fdocs\u002Fguides\u002Fdebugging":3,"doc-surround-\u002Fdocs\u002Fguides\u002Fdebugging":244,"doc-nav-zh":251},{"id":4,"title":5,"body":6,"description":234,"extension":235,"meta":236,"navigation":237,"order":238,"path":239,"section":240,"seo":241,"stem":242,"__hash__":243},"docs_zh\u002Fdocs\u002F02.guides\u002F10.debugging.md","调试与 DAP",{"type":7,"value":8,"toc":226},"minimark",[9,13,22,26,62,65,140,143,188,191,194,197,200,214],[10,11,5],"h1",{"id":12},"调试与-dap",[14,15,16,17,21],"p",{},"灵犀指内核内置 ",[18,19,20],"strong",{},"DAP（Debug Adapter Protocol）客户端","，通过 stdio 与任意兼容的调试适配器通信，为 IDE 与 AI 提供断点调试能力。断点位置、变量状态等调试数据同时可作为 AI 定位问题的输入。",[23,24,25],"h2",{"id":25},"工作原理",[27,28,29,38,45,52,59],"ul",{},[30,31,32,33,37],"li",{},"调试适配器以子进程方式启动，通过标准输入输出按 ",[34,35,36],"code",{},"Content-Length"," 帧交换 JSON 消息。",[30,39,40,41,44],{},"后台读循环持续解析适配器输出：响应按请求序号分发，事件入队等待消费，支持等待指定事件（如 ",[34,42,43],{},"stopped","）。",[30,46,47,48,51],{},"每个请求带 ",[18,49,50],{},"15 秒超时","，适配器无响应时不会挂死调用方。",[30,53,54,55,58],{},"启动后自动完成 ",[34,56,57],{},"initialize"," 握手；适配器进程随会话结束自动回收，Windows 下静默启动，不会弹出控制台窗口。",[30,60,61],{},"适配器的 stderr 默认忽略，避免诊断输出污染协议流。",[23,63,64],{"id":64},"已验证的调试能力",[66,67,68,81],"table",{},[69,70,71],"thead",{},[72,73,74,78],"tr",{},[75,76,77],"th",{},"能力",[75,79,80],{},"说明",[82,83,84,93,101,109,117,132],"tbody",{},[72,85,86,90],{},[87,88,89],"td",{},"断点管理",[87,91,92],{},"按文件与行号设置、列出、清除断点",[72,94,95,98],{},[87,96,97],{},"调用栈",[87,99,100],{},"程序暂停时获取完整 stack trace 与帧 ID",[72,102,103,106],{},[87,104,105],{},"变量检视",[87,107,108],{},"展开当前作用域的变量列表",[72,110,111,114],{},[87,112,113],{},"表达式求值",[87,115,116],{},"在指定栈帧上下文中求值任意表达式",[72,118,119,122],{},[87,120,121],{},"单步 \u002F 继续",[87,123,124,127,128,131],{},[34,125,126],{},"next"," 单步执行，",[34,129,130],{},"continue"," 运行至下一断点或结束",[72,133,134,137],{},[87,135,136],{},"事件通知",[87,138,139],{},"程序停止、退出等事件实时入队，可供等待消费",[23,141,142],{"id":142},"调试流程",[144,145,146,155,163,175],"steps",{},[147,148,149],"step",{},[14,150,151,154],{},[18,152,153],{},"设置断点","：在目标文件按行号设置断点，可随时列出或清除全部断点。",[147,156,157],{},[14,158,159,162],{},[18,160,161],{},"启动会话","：启动调试适配器并运行至断点处，程序暂停后查看调用栈（stack trace）。",[147,164,165],{},[14,166,167,170,171,174],{},[18,168,169],{},"检视变量","：展开当前作用域的变量列表，或用表达式求值（evaluate）计算任意表达式，如 ",[34,172,173],{},"x + y","。",[147,176,177],{},[14,178,179,182,183,127,185,187],{},[18,180,181],{},"单步与继续","：",[34,184,126],{},[34,186,130],{}," 运行至下一个断点或程序结束。",[14,189,190],{},"内核已对 Python 调试适配器完成「断点 → 调用栈 → 变量 → 求值 → 单步 → 继续」全流程的端到端验证，覆盖断点命中后的作用域解析（从栈帧到作用域再到变量列表的完整链路）。会话结束后可一次性清除全部断点。",[23,192,193],{"id":193},"接入新的调试适配器",[14,195,196],{},"任何实现了 DAP 协议的调试适配器都可以接入：只需提供适配器的可执行文件路径与启动参数，内核即可以子进程方式拉起并完成初始化握手。帧头解析、请求分发与事件归集全部由内核完成，IDE 侧无需关心协议细节。其他语言接入对应的 DAP 适配器（如 Node、Go、Rust 各自的 adapter）即可获得与上述一致的能力。",[14,198,199],{},"接入新适配器后，建议先用一个简单脚本验证断点命中与变量读取，再投入日常调试。",[14,201,202,203,208,209,213],{},"上述调试能力同时通过内核 API 暴露，可供 IDE 面板与 AI 工具调用，详见",[204,205,207],"a",{"href":206},"\u002Fdocs\u002Freference\u002Fkernel-api","内核 API","。与",[204,210,212],{"href":211},"\u002Fdocs\u002Fguides\u002Fterminal","集成终端","中的子进程一样，调试适配器进程也受内核统一管理。",[215,216,218],"callout",{"type":217},"tip",[14,219,220,221,225],{},"调试过程中，可以随时把断点处的变量状态与调用栈贴到 ",[204,222,224],{"href":223},"\u002Fdocs\u002Fguides\u002Fai-chat","AI 对话","中，让模型基于真实运行时状态定位问题。",{"title":227,"searchDepth":228,"depth":228,"links":229},"",2,[230,231,232,233],{"id":25,"depth":228,"text":25},{"id":64,"depth":228,"text":64},{"id":142,"depth":228,"text":142},{"id":193,"depth":228,"text":193},"通过 DAP 协议接入调试适配器，支持断点、调用栈、变量检视与表达式求值","md",{},true,10,"\u002Fdocs\u002Fguides\u002Fdebugging","功能指南",{"title":5,"description":234},"docs\u002F02.guides\u002F10.debugging","Llr2zyCRddC4LDSwFDNUyQTUhPJVB4HS4LRGDXyNSu0",[245,249],{"title":246,"path":247,"stem":248,"children":-1},"MCP 工具与市场","\u002Fdocs\u002Fguides\u002Fmcp","docs\u002F02.guides\u002F09.mcp",{"title":212,"path":211,"stem":250,"children":-1},"docs\u002F02.guides\u002F11.terminal",[252],{"title":253,"path":254,"stem":255,"children":256,"page":278},"Docs","\u002Fdocs","docs",[257,279,301,318],{"title":258,"path":259,"stem":260,"children":261,"page":278},"快速上手","\u002Fdocs\u002Fgetting-started","docs\u002F01.getting-started",[262,266,270,274],{"title":263,"path":264,"stem":265},"安装与下载","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F01.getting-started\u002F01.installation",{"title":267,"path":268,"stem":269},"注册与登录","\u002Fdocs\u002Fgetting-started\u002Fregister-login","docs\u002F01.getting-started\u002F02.register-login",{"title":271,"path":272,"stem":273},"首次配置","\u002Fdocs\u002Fgetting-started\u002Ffirst-setup","docs\u002F01.getting-started\u002F03.first-setup",{"title":275,"path":276,"stem":277},"从 VS Code 迁移","\u002Fdocs\u002Fgetting-started\u002Fmigrate-from-vscode","docs\u002F01.getting-started\u002F04.migrate-from-vscode",false,{"title":240,"path":280,"stem":281,"children":282,"page":278},"\u002Fdocs\u002Fguides","docs\u002F02.guides",[283,286,290,294,298,299,300],{"title":284,"path":223,"stem":285},"AI 对话与内联编辑","docs\u002F02.guides\u002F05.ai-chat",{"title":287,"path":288,"stem":289},"RUSH 深度任务","\u002Fdocs\u002Fguides\u002Frush","docs\u002F02.guides\u002F06.rush",{"title":291,"path":292,"stem":293},"FIM 代码补全","\u002Fdocs\u002Fguides\u002Ffim-completion","docs\u002F02.guides\u002F07.fim-completion",{"title":295,"path":296,"stem":297},"语义代码图谱","\u002Fdocs\u002Fguides\u002Fcode-graph","docs\u002F02.guides\u002F08.code-graph",{"title":246,"path":247,"stem":248},{"title":5,"path":239,"stem":242},{"title":212,"path":211,"stem":250},{"title":302,"path":303,"stem":304,"children":305,"page":278},"模型与计费","\u002Fdocs\u002Fmodels-billing","docs\u002F03.models-billing",[306,310,314],{"title":307,"path":308,"stem":309},"支持的模型","\u002Fdocs\u002Fmodels-billing\u002Fmodels","docs\u002F03.models-billing\u002F12.models",{"title":311,"path":312,"stem":313},"套餐与配额","\u002Fdocs\u002Fmodels-billing\u002Fplans-quota","docs\u002F03.models-billing\u002F13.plans-quota",{"title":315,"path":316,"stem":317},"自带 API Key（BYOK）","\u002Fdocs\u002Fmodels-billing\u002Fbyok","docs\u002F03.models-billing\u002F14.byok",{"title":319,"path":320,"stem":321,"children":322,"page":278},"参考与 FAQ","\u002Fdocs\u002Freference","docs\u002F04.reference",[323,327,331,333],{"title":324,"path":325,"stem":326},"快捷键","\u002Fdocs\u002Freference\u002Fshortcuts","docs\u002F04.reference\u002F15.shortcuts",{"title":328,"path":329,"stem":330},"配置项","\u002Fdocs\u002Freference\u002Fconfiguration","docs\u002F04.reference\u002F16.configuration",{"title":207,"path":206,"stem":332},"docs\u002F04.reference\u002F17.kernel-api",{"title":334,"path":335,"stem":336},"常见问题","\u002Fdocs\u002Freference\u002Ffaq","docs\u002F04.reference\u002F18.faq",1786077825655]