SuperAPI AI 工具集

debugging-code

测试与质量

查看项目

更新于 10-15 23:31

技能介绍

用途:在 Rider 打开的解决方案中,用调试器证据回答静态阅读代码无法确定的运行时问题,例如实际取值、分支走向、调用顺序、线程上下文,或确认执行是否到达某个代码位置。适用于需要运行时状态或控制流证据、手动追踪调用链成本过高、或用户明确要求使用调试器(断点、单步、查看变量)的场景。

主要能力:通过 execute_tool(command="<tool> --arg value ...") 调用工具,不直接调用底层句柄。核心工具包括 xdebug_set_breakpoints、xdebug_start_debugger_session、xdebug_control_session、xdebug_get_stack、xdebug_get_frame_values、xdebug_get_value_by_path、xdebug_evaluate_expression、get_run_configurations 等;仅在调用前阅读 reference/tools.md 中对应工具的说明。支持在库与反编译源码中设断点,用 read_file 读取外部源码或反编译输出,用 search_symbol(include_external=true) 查找外部符号路径。

使用方式:先做最小静态排查,再判断是否复用已有会话;用 xdebug_get_debugger_status 检查状态,用 xdebug_list_breakpoints 建立断点基线并区分 user/agent 归属。复现模式分 AUTO、ASSISTED、HYBRID、ATTACH;附加进程用 xdebug_attach_to_process --pid <pid>,若返回 selection_required 需用同一 PID 与返回的 availableDebuggers 名称重试。调试测试时用 --filePath + --line 指向测试定义,或用 --configurationName 指定已有运行配置。断点项有 location 与 breakpointId 两种互斥模式,不可混用。

限制与注意:仅当调试器 MCP 工具在当前会话可用时使用,否则应说明阻塞并改用回退方案。编译期或语法错误、源码即可看出的问题、单文件逻辑错误、日志已定位的问题不应启动调试器。不要擅自修改项目配置(NuGet、目标框架、.csproj/.sln、运行配置、环境、凭据、服务),需要变更时应作为阻塞项等待用户确认。breakpointErrorsTail / tracepointOutputsTail 仅由 JVM 调试器填充,Rider 不适用,应改用 xdebug_get_process_output 读取程序输出。未捕获到具体运行时值前不得断言根因,也不得先改运行时行为。调试结束后清理 agent 断点、恢复用户断点基线,并按需停止会话。