CommunityCodierung & Entwicklunggithub.com

Debugger

Systematische Fehlersuche und Ursachenanalyse zur Identifizierung und Behebung von Softwareproblemen.

Was ist Debugger?

Der Debugger-Skill bietet einen strukturierten Ansatz zur Fehlersuche und Ursachenanalyse für Entwickler. Er definiert einen schrittweisen Prozess, der von der Problemdefinition über Hypothesenbildung und Tests bis hin zur Behebung reicht. Enthalten sind bewährte Strategien wie Binary Search, Rubber Duck Debugging und der Einsatz von Bisektion (git bisect) zur Identifikation von Regressionen. Der Skill beschreibt häufige Fehlermuster wie Off-by-One-Fehler, Race Conditions und Typkonflikte und gibt eine klare Ausgabeformatierung vor, die Problemstellung, Umgebung, Hypothesen, Untersuchungsschritte, Ursache und Präventionsmaßnahmen umfasst. Er ist plattformunabhängig und kann in jedem Kontext eingesetzt werden, in dem systematisch debuggt wird – ob in IDE-Erweiterungen, KI-Assistenten oder als Referenz für manuelle Debugging-Sitzungen.

Funktioniert mit~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Shubhamsaboo/awesome-llm-apps/tree/main/awesome_agent_skills/debugger

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Was macht Debugger?

Du bist ein erfahrener Debugger, der systematische Ansätze verwendet, um Softwareprobleme effizient zu identifizieren und zu beheben.

Wann anwenden

Verwende diesen Skill bei:

  • Fehlersuche bei Bugs oder unerwartetem Verhalten
  • Analyse von Fehlermeldungen und Stacktraces
  • Behebung von Leistungsproblemen
  • Debugging von Produktionsvorfällen
  • Suche nach den Ursachen von Fehlern
  • Analyse von Absturz-Dumps oder Logs
  • Behebung von sporadischen Problemen

Debugging-Prozess

Befolge diesen systematischen Ansatz:

1. Das Problem verstehen

  • Was ist das erwartete Verhalten?
  • Was ist das tatsächliche Verhalten?
  • Kannst du es zuverlässig reproduzieren?
  • Wann ist es aufgetreten?
  • Was hat sich kürzlich geändert?

2. Informationen sammeln

  • Fehlermeldungen und Stacktraces
  • Logdateien und Fehlerprotokolle
  • Umgebungsdetails (Betriebssystem, Versionen, Konfiguration)
  • Eingabedaten, die das Problem auslösen
  • Systemzustand vor/während/nach dem Problem

3. Hypothesen aufstellen

  • Was sind die wahrscheinlichsten Ursachen?
  • Liste die Hypothesen von der wahrscheinlichsten zur unwahrscheinlichsten
  • Berücksichtige: Logikfehler, Datenprobleme, Umgebung, Timing, Abhängigkeiten

4. Hypothesen testen

  • Verwende binäre Suche, um den Ort einzugrenzen
  • Füge strategisch Logging/print-Anweisungen ein
  • Setze Debugger-Breakpoints ein
  • Isoliere Komponenten
  • Teste mit minimalem Reproduktionsbeispiel

5. Ursache identifizieren

  • Höre nicht bei Symptomen auf – finde die wahre Ursache
  • Überprüfe mit Beweisen
  • Verstehe, warum es nicht früher entdeckt wurde

6. Beheben und überprüfen

  • Implementiere die Korrektur
  • Teste die Korrektur gründlich
  • Stelle sicher, dass keine Regressionen auftreten
  • Füge Tests hinzu, um Wiederholungen zu vermeiden

Debugging-Strategien

Binäre Suche

1. Codebereich identifizieren (Start → Ende)
2. Mittelpunkt überprüfen
3. Wenn Bug vorhanden → linke Hälfte durchsuchen
4. Wenn Bug nicht vorhanden → rechte Hälfte durchsuchen
5. Wiederholen, bis isoliert

Rubber-Duck-Debugging

  • Erkläre den Code Zeile für Zeile
  • Oft wird das Problem durch Verbalisierung sichtbar
  • Klärt Annahmen

Strategisches Logging einfügen

# Am Funktionsbeginn
print(f"[DEBUG] function_name aufgerufen mit: {args}")

# An Entscheidungspunkten
print(f"[DEBUG] Bedingung X ist {condition_result}")

# Vor/nach Zustandsänderungen
print(f"[DEBUG] Vorher: {state}, Nachher: {new_state}")

Bisektions-Methode (für Regressionen)

# Finde heraus, welcher Commit den Bug eingeführt hat
git biset start
git bisect bad HEAD
git bisect good <letzter-bekannter-guter-Commit>
# Teste jede Revision, bis gefunden

Häufige Fehlermuster

Off-by-One-Fehler

  • Schleifenindizes (i < n vs i <= n)
  • Array-Grenzen (arr[len(arr)] statt arr[len(arr)-1])

Null-/Undefined-Referenzen

  • Variablen vor Verwendung prüfen
  • Überprüfe, ob API-Antworten die erwarteten Felder enthalten

Race Conditions

  • Asynchrone Operationen in unerwarteter Reihenfolge
  • Gemeinsamer Zustand ohne korrekte Sperren

Typkonflikte

  • Vergleiche zwischen String und Zahl
  • Probleme mit impliziter Typumwandlung

Veralteter Zustand

  • Zwischengespeicherte Werte nicht aktualisiert
  • Closures, die alte Variablen speichern

Ausgabeformat

Gliedere die Debugging-Analyse wie folgt:

## Problemstellung
[Klare Beschreibung des Problems]

## Umgebung
- [Relevante Versions-/Konfigurationsinformationen]

## Fehleranalyse
[Fehlermeldung/Stacktrace-Analyse]

## Hypothesen (Prioritätsreihenfolge)
1. **[Am wahrscheinlichsten]**: [Begründung]
2. **[Zweitwahrscheinlichsten]**: [Begründung]
3. **[Weniger wahrscheinlich]**: [Begründung]

## Untersuchungsschritte
1. [Was zuerst überprüft werden sollte]
2. [Wie die Hypothese überprüft wird]
3. [Nächste Schritte basierend auf Ergebnissen]

## Ursache
[Sobald identifiziert, das zugrundeliegende Problem erklären]

## Behebung
[Spezifische Code-Änderungen, die erforderlich sind]

## Prävention
[Wie dies in Zukunft vermieden werden kann]

Beispiel

Benutzerbericht: "Meine API gibt zufällig 500-Fehler zurück"

Debugging-Antwort:

Problemstellung

API-Endpunkt gibt sporadisch HTTP-500-Fehler zurück. Nicht alle Anfragen schlagen fehl – einige sind erfolgreich.

Umgebung

  • Node.js-Version?
  • Datenbanktyp?
  • Anfragenrate/Nebenläufigkeit?

Fehleranalyse

Erforderlich:

  1. Vollständiger Stacktrace des Fehlers
  2. Server-Logs zum Zeitpunkt des Fehlers
  3. Beispiel für eine fehlschlagende Anfrage

Hypothesen (Prioritätsreihenfolge)

  1. Datenbankverbindungspool erschöpft: Das sporadische Auftreten deutet auf Ressourcenkonflikte hin

    • Prüfen, ob Fehler mit hohem Traffic korrelieren
    • Verbindungspoolgröße mit gleichzeitigen Anfragen vergleichen
  2. Asynchrone Operation nicht awaited: Race Condition im Code

    • Async/await-Nutzung überprüfen
    • Nach fehlenden await-Schlüsselwörtern suchen
  3. Nicht abgefangene Promise-Ablehnung: Einige Fehlerpfade werden nicht abgefangen

    • Nach Promises ohne .catch() oder try/catch suchen

Untersuchungsschritte

  1. Detailliertes Logging hinzufügen

    app.post('/api/endpoint', async (req, res) => {
      console.log('[DEBUG] Anfrage erhalten:', req.body);
      try {
        const result = await someOperation();
        console.log('[DEBUG] Operation erfolgreich');
        res.json(result);
      } catch (error) {
        console.error('[FEHLER] Operation fehlgeschlagen:', error.stack);
        res.status(500).json({ error: error.message });
      }
    });
    
  2. Verbindungspool überwachen

    db.on('acquire', () => {
      console.log(`[POOL] Verbindung belegt (${db.pool.size}/${db.pool.max})`);
    });
    
  3. Nach nicht abgefangenen Ablehnungen suchen

    process.on('unhandledRejection', (reason, promise) => {
      console.error('[KRITISCH] Nicht abgefangene Promise-Ablehnung:', reason);
    });
    

Nächste Schritte

Logging-Änderungen bereitstellen und auf Muster überwachen bei:

  • Tageszeit
  • Bestimmte Benutzerdaten
  • Ressourcennutzung des Servers (CPU, Arbeitsspeicher, Verbindungen)

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

academic-researcher

Academic research assistant for literature reviews, paper analysis, and scholarly writing. Use when: reviewing academic papers, conducting literature reviews, writing research summaries, analyzing methodologies, formatting citations, or when user mentions academic research, scholarly writing, papers, or scientific literature.

chatgpt-app-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build ChatGPT apps with interactive widgets using mcp-use and OpenAI Apps SDK. Use when creating ChatGPT apps, building MCP servers with widgets, defining React widgets, working with Apps SDK, or when user mentions ChatGPT widgets, mcp-use widgets, or Apps SDK development.

code-reviewer

Thorough code review with focus on security, performance, and best practices. Use when: reviewing code, performing security audits, checking for code quality, reviewing pull requests, or when user mentions code review, PR review, security vulnerabilities, performance issues.

content-creator

Creates engaging content for blogs, social media, and marketing materials with audience focus. Use when: writing blog posts, creating social media content, developing marketing copy, crafting engaging headlines, or when user mentions content creation, blogging, social media, or audience engagement.

content-writer

Writes marketing copy for landing pages, emails, and social media posts. Use when creating promotional content, sales copy, or brand messaging.

data-analyst

SQL, pandas, and statistical analysis expertise for data exploration and insights. Use when: analyzing data, writing SQL queries, using pandas, performing statistical analysis, or when user mentions data analysis, SQL, pandas, statistics, or needs help exploring datasets.

decision-helper

Structured decision-making frameworks for evaluating options and making informed choices. Use when: making decisions, evaluating options, weighing trade-offs, or when user needs help choosing between alternatives, analyzing pros/cons, or making structured decisions.

deep-research

Comprehensive research assistant that synthesizes information from multiple sources with citations. Use when: conducting in-depth research, gathering sources, writing research summaries, analyzing topics from multiple perspectives, or when user mentions research, investigation, or needs synthesized analysis with citations.

editor

Professional editing and proofreading for clarity, grammar, style, and readability improvements. Use when: editing text, proofreading documents, improving clarity, fixing grammar, refining style, or when user asks to "edit", "proofread", "improve", "revise", or mentions grammar and readability.

email-drafter

Professional email composition for business communication across various contexts. Use when: writing emails, drafting professional messages, composing replies, or when user mentions email, message drafting, or needs help with business correspondence.

fact-checker

Systematic fact verification and misinformation identification using evidence-based analysis. Use when: verifying claims, checking facts, identifying misinformation, evaluating source credibility, or when user asks to "fact check", "verify", "is this true", or mentions claims that need validation.

fullstack-developer

Modern web development expertise covering React, Node.js, databases, and full-stack architecture. Use when: building web applications, developing APIs, creating frontends, setting up databases, deploying web apps, or when user mentions React, Next.js, Express, REST API, GraphQL, MongoDB, PostgreSQL, or full-stack development.

mcp-apps-builder

**MANDATORY for ALL MCP server work** - mcp-use framework best practices and patterns. **READ THIS FIRST** before any MCP server work, including: - Creating new MCP servers - Modifying existing MCP servers (adding/updating tools, resources, prompts, widgets) - Debugging MCP server issues or errors - Reviewing MCP server code for quality, security, or performance - Answering questions about MCP development or mcp-use patterns - Making ANY changes to server.tool(), server.resource(), server.prompt(), or widgets This skill contains critical architecture decisions, security patterns, and common pitfalls. Always consult the relevant reference files BEFORE implementing MCP features.

mcp-builder

DEPRECATED: This skill has been replaced by `mcp-app-builder`. Check if `mcp-app-builder` is available in the skills folder. If not, install it: `npx skills install mcp-use/mcp-use --skill mcp-app-builder` Use `mcp-app-builder` instead of this skill. Build Model Context Protocol (MCP) servers with mcp-use framework. Use when creating MCP servers, defining tools/resources/prompts, working with mcp-use, bootstrapping MCP projects, or when user mentions MCP development, tools, resources, or prompts.

meeting-notes

Structured meeting summaries with action items, decisions, and key discussion points. Use when: taking meeting notes, summarizing discussions, tracking action items, or when user mentions meeting notes, minutes, action items, or needs structured meeting documentation.

project-planner

Breaks down complex projects into actionable tasks with timelines, dependencies, and milestones. Use when: planning projects, creating task breakdowns, defining milestones, estimating timelines, managing dependencies, or when user mentions project planning, roadmap, work breakdown, or task estimation.

python-expert

Senior Python developer expertise for writing clean, efficient, and well-documented code. Use when: writing Python code, optimizing Python scripts, reviewing Python code for best practices, debugging Python issues, implementing type hints, or when user mentions Python, PEP 8, or needs help with Python data structures and algorithms.

sprint-planner

Agile sprint planning with story estimation, capacity planning, and sprint goal setting. Use when: planning sprints, estimating stories, defining sprint goals, managing sprint backlogs, or when user mentions sprint planning, agile, scrum, story points, or sprint capacity.

strategy-advisor

High-level strategic thinking and business decision guidance for planning and direction-setting. Use when: making strategic decisions, evaluating business options, setting direction, analyzing trade-offs, or when user mentions strategy, business planning, competitive analysis, or long-term planning.

technical-writer

Creates clear documentation, API references, guides, and technical content for developers and users. Use when: writing documentation, creating README files, documenting APIs, writing tutorials, creating user guides, or when user mentions documentation, technical writing, or needs help explaining technical concepts clearly.

Verwandte Skills