Shadows Bug Hunter

Polar Sponsor
爱发电 赞助
.NET 9.0

**结构化调试四法:日志注入、截图分析、手动追踪、测试驱动修复。** 适用于报错、UI异常、功能回归等场景。

Bug Hunter — 结构化调试协议.

功能概述

Bug Hunter — 结构化调试协议.是一项面向实际任务的技能,主要用于Version : 1.1.0 QQ 作者:Shadows Company QQ 许可: MIT.WHEN to TRIGGER.;Runtime 错误,例外,堆栈痕迹.;

核心要点

  • UI渲染问题或视觉错误 : 1.R.。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。

使用与执行

从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。

Bug Hunter — 结构化调试协议

版本: 1.1.0 | 作者: Shadows Company | 许可证: MIT

触发时机

  • 运行时错误、异常、堆栈跟踪(stack traces)
  • UI 渲染问题或视觉类缺陷(visual bugs)
  • 近期变更后出现的回归问题(regression)
  • 用户明确提出 “debug”、“fix this bug”、“it's broken”、“not working” 等请求
  • 测试失败且根因不明确
  • 性能下降

不触发时机

  • 功能需求(应使用 brainstorming 技能)
  • 代码风格 / 格式问题
  • 明显可修复的简单拼写错误

前提条件

必需项:

  • git — 在 Triage 步骤中用于通过 git log --oneline -10 检查最近变更。检测方式:which git 或 git --version。

可选项(按项目自动检测):

  • pytest — Python 测试运行器,用于 Technique 4。通过 python -m pytest --version 或是否存在 pytest.ini / pyproject.toml [tool.pytest] 检测。
  • jest — JavaScript 测试运行器,用于 Technique 4。通过 npx jest --version 或是否存在 jest.config.* 检测。
  • vitest — 基于 Vite 的测试运行器,用于 Technique 4。通过 npx vitest --version 或是否存在 vitest.config.* 检测。

若未检测到任何测试运行器,则 Technique 4(Test-Driven Fix)仅限于编写测试文件——执行需延后处理。

协议 — 四种技术

选择具体技术前,必须首先执行 Triage:

Triage(强制执行 — 最长 60 秒)

  1. 完整阅读错误信息 — 它实际表达了什么?
  2. 问题何时开始出现? 检查近期 git 变更:git log --oneline -10
  3. 是否可复现? 尝试一次失败操作
  4. 分类严重程度:崩溃(Crash)/ 错误结果(Wrong result)/ 视觉问题(Visual)/ 性能问题(Performance)

根据 Triage 结果,选择最适用的技术:

Technique 1 — 日志注入(Log Injection)(最适合:后端逻辑、数据流、异步问题)

  1. 在关键决策点插入策略性 console.log / print()
  2. 记录可疑函数的输入 AND 输出
  3. 运行失败场景
  4. 通过日志定位“预期值 ≠ 实际值”的位置
  5. 修复根本原因
  6. 清理(CLEANUP):提交前必须移除所有调试日志
[LOG] function_name() called with: {params}
[LOG] function_name() returned: {result}
[LOG] condition_check: variable = {value}

警告:该技术会临时修改源文件。所有注入的调试代码必须在任何提交前彻底移除。详见下方 CLEANUP GUARANTEE。

Technique 2 — 截图分析(Screenshot Analysis)(最适合:UI 缺陷、布局问题)

  1. 截取或描述当前(异常)状态
  2. 明确“应显示内容”与“实际显示内容”的差异
  3. 自上而下检查组件树(component tree)
  4. 核查:CSS 特异性(specificity)、z-index、overflow、flexbox/grid 对齐方式
  5. 修复样式或渲染逻辑
  6. 在断点尺寸下验证:375px、768px、1024px、1440px

Technique 3 — 手动追踪(Manual Trace)(最适合:逻辑错误、算法缺陷)

  1. 逐行阅读出错函数
  2. 手动计算每一步的预期值
  3. 定位预期与现实发生偏差的确切行号
  4. 检查边界情况:null、undefined、空数组、零值、负数
  5. 修复逻辑,并为该边界情况补充测试

Technique 4 — 测试驱动修复(Test-Driven Fix)(最适合:回归问题、复杂交互)

  1. 首先编写一个复现该缺陷的失败测试
  2. 运行测试确认其失败:python -m pytest {test_file} -x -q 或 npx jest {test_file} 或 npx vitest run {test_file}
  3. 修复代码直至测试通过(绿色状态)
  4. 运行完整测试套件以检查是否引入新回归:python -m pytest -x -q 或 npx jest 或 npx vitest run
  5. 如有必要,进行重构(refactor)

注意:Technique 4 将执行项目自身的测试套件,即运行仓库中的代码。仅可在可信仓库中使用,或在沙箱(sandbox)环境中执行。

流程

TRIAGE → SELECT TECHNIQUE → INVESTIGATE → HYPOTHESIZE → FIX → VERIFY → CLEANUP

修复后验证清单

  • 原始缺陷已修复
  • 未引入新错误
  • 现有测试全部通过
  • 已清除所有调试产物(日志、console.log、print、debugger、TODO 等)
  • 已覆盖相关边界情况

CLEANUP GUARANTEE(清理保障)

每次修复完成后,代理必须执行最终验证环节:

  1. 在已修改文件中搜索调试标记:grep -n "\[LOG\]|console\.log|print(|debugger|# DEBUG|// DEBUG" {modified_files}
  2. 移除所有残留的调试产物
  3. 确认工作区(working tree)中无任何注入的调试代码,方可报告完成

该步骤不可协商,适用于全部四种技术,而不仅限于 Technique 1。

规则

  1. 先阅读,再猜测 — 始终阅读真实错误信息,切勿主观假设
  2. 一次只改一处 — 每次仅变更一项,测试通过后再继续
  3. 修复根因,而非表象 — 解决“为何出错”,而非仅掩盖表面症状
  4. 禁止霰弹式调试(shotgun debugging) — 不得随机修改多处代码、寄希望于“碰巧修好”
  5. 务必清理 — 提交前必须移除所有调试代码
  6. 回归测试 — 必须添加测试用例,防止同一缺陷再次出现

安全考量

  • 执行的命令:git log(只读)。Technique 4 运行项目测试套件(pytest、jest、vitest),将执行仓库中的代码。
  • 读取的数据:本地仓库中的源文件。
  • 文件修改:Technique 1(Log Injection)会临时修改源文件以注入调试语句。所有注入代码必须在提交前彻底移除(参见 CLEANUP GUARANTEE)。
  • 网络访问:无。
  • 持久化:无。
  • 凭据:无需任何凭据。
  • 沙箱(Sandboxing):在非可信仓库中使用 Technique 4 时,强烈建议启用沙箱环境,因其测试执行会运行任意项目代码。

输出格式

## Bug Report
- **Error**: [精确的错误信息]
- **Severity**: [Crash/Wrong Result/Visual/Performance]
- **Reproducible**: [Yes/No + 复现步骤]

## Root Cause
[缺陷发生原因的解释]

## Fix Applied
[修复描述,含 file:line 引用]

## Verification
- [x] 原始缺陷已解决
- [x] 所有测试通过
- [x] 无残留调试产物

发布方:Shadows Company — “我们于暗影中工作,只为服务光明。”

相关专题

更多
LLVM自定义Pass怎么写
LLVM自定义Pass怎么写

本专题聚焦LLVM自定义Pass开发,整理Pass类结构、run()方法、PreservedAnalyses、CMake构建、插件注册、-load-pass-plugin加载和测试用例编写流程。

2026.09.30

0

10

LLVM RISC-V参数配置教程
LLVM RISC-V参数配置教程

本专题介绍LLVM对RISC-V基础ISA和扩展的支持方式,涵盖RV32、RV64、标准扩展、实验性扩展、厂商扩展、-menable-experimental-extensions和版本差异。

2026.09.30

0

14

LLVM IR中间表示入门指南
LLVM IR中间表示入门指南

本专题整理LLVM IR的核心概念,包括中间表示作用、模块结构、函数、基本块、SSA形式、类型系统和常见语法,帮助新手理解LLVM编译流程中的关键层。

2026.09.30

0

12

PDF转图片方法
PDF转图片方法

需要把 PDF 页面用于上传、预览、分享或图片归档时,PDF 转图片方法专题整理 JPG/PNG 格式选择、逐页导出、清晰度设置、批量下载和结果检查等流程,帮助用户稳定完成 PDF 图片化处理。

2026.09.30

0

26

PixTV AI视频生成与无限画布创作
PixTV AI视频生成与无限画布创作

PixTV专题整理AI视频与视觉内容创作相关功能使用教程,涵盖AI生图、视频生成、无限画布、多模型创作、素材管理、声音音乐及视频剪辑等功能,帮助用户快速掌握PixTV从创意到成片的完整制作方法。

2026.09.29

0

15

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

2026.09.23

0

15

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

2026.09.23

0

15

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

2026.09.23

0

15

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

2026.09.22

0

12

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
phpStudy极速入门视频教程
phpStudy极速入门视频教程

共6课时 | 54.6万人学习

独孤九贱(4)_PHP视频教程
独孤九贱(4)_PHP视频教程

共89课时 | 133.4万人学习