Token导航 LogoToken导航TokenDH.com
研究检索只读github未标认证来源可访问clear审计通过

debugging调试

Agent Skill

debugging 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

251,424

周安装

10,830

GitHub Stars

88

下载量

88,128
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:debugging(调试)
来源仓库:https://github.com/supercent-io/skills-template
仓库路径:skills/debugging
安装命令:
npx skills add https://github.com/supercent-io/skills-template --skill debugging
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/supercent-io/skills-template --skill debugging

简介

使用结构化调试方法系统地隔离和修复代码问题。

  • 涵盖六步调试工作流程:信息收集、再现、隔离、根本原因分析、修复实施和验证
  • 包括常见错误模式(差一、空引用、竞争条件、内存泄漏、类型不匹配)以及有针对性的解决方案
  • 提供调试技术:二分搜索隔离、打印/日志调试、分而治之代码消除和回归测试模式
  • 支持多种语言并提供工具推荐(Python 的 pdb/cProfile、JavaScript 的 Chrome DevTools、Go 的 Delve 等)

SKILL.md

Debugging

When to use this skill

  • Encountering runtime errors or exceptions
  • Code produces unexpected output or behavior
  • Performance degradation or memory issues
  • Intermittent or hard-to-reproduce bugs
  • Understanding unfamiliar error messages
  • Post-incident analysis and prevention

Instructions

Step 1: Gather Information

Collect all relevant context about the issue:

Error details:

  • Full error message and stack trace
  • Error type (syntax, runtime, logic, etc.)
  • When did it start occurring?
  • Is it reproducible?

Environment:

  • Language and version
  • Framework and dependencies
  • OS and runtime environment
  • Recent changes to code or config
# Check recent changes
git log --oneline -10
git diff HEAD~5

# Check dependency versions
npm list --depth=0  # Node.js
pip freeze          # Python

Step 2: Reproduce the Issue

Create a minimal, reproducible example:

# Bad: Vague description
"The function sometimes fails"

# Good: Specific reproduction steps
"""
1. Call process_data() with input: {"id": None}
2. Error occurs: TypeError at line 45
3. Expected: Return empty dict
4. Actual: Raises exception
"""

# Minimal reproduction
def test_reproduce_bug():
    result = process_data({"id": None})  # Fails here
    assert result == {}

Step 3: Isolate the Problem

Use binary search debugging to narrow down the issue:

Print/Log debugging:

def problematic_function(data):
    print(f"[DEBUG] Input: {data}")  # Entry point

    result = step_one(data)
    print(f"[DEBUG] After step_one: {result}")

    result = step_two(result)
    print(f"[DEBUG] After step_two: {result}")  # Issue here?

    return step_three(result)

Divide and conquer:

# Comment out half the code
# If error persists: bug is in remaining half
# If error gone: bug is in commented half
# Repeat until isolated

Step 4: Analyze Root Cause

Common bug patterns and solutions:

PatternSymptomSolution
Off-by-oneIndex out of boundsCheck loop bounds
Null referenceNullPointerExceptionAdd null checks
Race conditionIntermittent failuresAdd synchronization
Memory leakGradual slowdownCheck resource cleanup
Type mismatchUnexpected behaviorValidate types

Questions to ask:

  1. What changed recently?
  2. Does it fail with specific inputs?
  3. Is it environment-specific?
  4. Are there any patterns in failures?

Step 5: Implement Fix

Apply the fix with proper verification:

# Before: Bug
def get_user(user_id):
    return users[user_id]  # KeyError if not found

# After: Fix with proper handling
def get_user(user_id):
    if user_id not in users:
        return None  # Or raise custom exception
    return users[user_id]

Fix checklist:

  • Addresses root cause, not just symptom
  • Doesn't break existing functionality
  • Handles edge cases
  • Includes appropriate error handling
  • Has test coverage

Step 6: Verify and Prevent

Ensure the fix works and prevent regression:

# Add test for the specific bug
def test_bug_fix_issue_123():
    """Regression test for issue #123: KeyError on missing user"""
    result = get_user("nonexistent_id")
    assert result is None  # Should not raise

# Add edge case tests
@pytest.mark.parametrize("input,expected", [
    (None, None),
    ("", None),
    ("valid_id", {"name": "User"}),
])
def test_get_user_edge_cases(input, expected):
    assert get_user(input) == expected

Examples

Example 1: TypeError debugging

Error:

TypeError: cannot unpack non-iterable NoneType object
  File "app.py", line 25, in process
    name, email = get_user_info(user_id)

Analysis:

# Problem: get_user_info returns None when user not found
def get_user_info(user_id):
    user = db.find_user(user_id)
    if user:
        return user.name, user.email
    # Missing: return None case!

# Fix: Handle None case
def get_user_info(user_id):
    user = db.find_user(user_id)
    if user:
        return user.name, user.email
    return None, None  # Or raise UserNotFoundError

Example 2: Race condition debugging

Symptom: Test passes locally, fails in CI intermittently

Analysis:

# Problem: Shared state without synchronization
class Counter:
    def __init__(self):
        self.value = 0

    def increment(self):
        self.value += 1  # Not atomic!

# Fix: Add thread safety
import threading

class Counter:
    def __init__(self):
        self.value = 0
        self._lock = threading.Lock()

    def increment(self):
        with self._lock:
            self.value += 1

Example 3: Memory leak debugging

Tool: Use memory profiler

from memory_profiler import profile

@profile
def process_large_data():
    results = []
    for item in large_dataset:
        results.append(transform(item))  # Memory grows
    return results

# Fix: Use generator for large datasets
def process_large_data():
    for item in large_dataset:
        yield transform(item)  # Memory efficient

Best practices

  1. Reproduce first: Never fix what you can't reproduce
  2. One change at a time: Isolate variables when debugging
  3. Read the error: Error messages usually point to the issue
  4. Check assumptions: Verify what you think is true
  5. Use version control: Easy to revert and compare changes
  6. Document findings: Help future debugging efforts
  7. Write tests: Prevent regression of fixed bugs

Debugging Tools

LanguageDebuggerProfiler
Pythonpdb, ipdbcProfile, memory_profiler
JavaScriptChrome DevToolsPerformance tab
JavaIntelliJ DebuggerJProfiler, VisualVM
GoDelvepprof
Rustrust-gdbcargo-flamegraph

References

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

27.56%
按下载量换算24,288

Codex

20.96%
按下载量换算18,472

OpenCode

18.92%
按下载量换算16,674

Gemini CLI

11.59%
按下载量换算10,214

Antigravity

6.83%
按下载量换算6,019

Cursor

3.39%
按下载量换算2,988

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills