debugging-strategies
Systematische Debugging-Strategien anwenden
Das Debuggen komplexer Software-Probleme fühlt sich oft zufällig und frustrierend an. Diese Fähigkeit bietet systematische Debugging-Techniken, Profiling-Tools und Ursachenanalysemethoden, die das Troubleshooting in einen methodischen Prozess verwandeln.
Die Skill-ZIP herunterladen
In Claude hochladen
Gehe zu Einstellungen → Fähigkeiten → Skills → Skill hochladen
Einschalten und loslegen
Teste es
Verwendung von "debugging-strategies". My Node.js API returns 500 errors intermittently. The error says 'Cannot read property of undefined' but I cannot find where this happens.
Erwartetes Ergebnis:
Lass mich systematisches Debugging anwenden, um dieses undefinierte Eigenschafts-Problem zu finden.
## Schritt 1: Reproduzieren und Beobachten
- Wann tritt der Fehler auf? Immer oder zufällig?
- Welcher API-Endpunkt löst ihn aus?
- Welche Request-Parameter werden gesendet?
## Schritt 2: Informationen sammeln
1. Strategisches Logging vor dem wahrscheinlichen Absturzpunkt hinzufügen:
```javascript
console.log('Order data:', JSON.stringify(order, null, 2));
```
2. Überprüfen, welche Eigenschaft undefiniert sein könnte:
```javascript
console.log('Items:', order?.items);
console.log('User:', order?.user?.name);
```
## Schritt 3: Hypothese
Hypothese: Der Fehler tritt wahrscheinlich auf, wenn:
- order.items für bestimmte Request-Typen undefiniert ist
- order.user für Gastbenutzer null ist
## Schritt 4: Testen und Überprüfen
Null-Prüfungen hinzufügen und mit Beispiel-Requests verifizieren:
```javascript
const items = order?.items ?? [];
const userName = order?.user?.name ?? 'Guest';
```
Möchtest du, dass ich dir helfe, diesen Fix zu implementieren?
Verwendung von "debugging-strategies". Help me debug a memory leak in my React application.
Erwartetes Ergebnis:
Lass mich dich durch das systematische Debuggen eines React-Speicherlecks führen.
## Reproduktionsphase
1. Chrome DevTools > Memory-Tab öffnen
2. Einen Heap-Snapshot machen (vorher)
3. Die verdächtige Aktion 10-20 Mal durchführen
4. Einen weiteren Snapshot machen (nachher)
5. Snapshots vergleichen, um zurückgehaltene Objekte zu identifizieren
## Häufige React-Speicherleck-Muster
1. Nicht abgemeldete Event-Listener
2. Timer (setInterval), die nicht in useEffect-Cleanup gelöscht werden
3. Closures, die Referenzen auf Komponentenbereich halten
4. Unbegrenzt wachsende globale Caches
## Schnelle Debugging-Schritte
```javascript
useEffect(() => {
const timer = setInterval(() => {
// ...
}, 1000);
// Cleanup-Funktion - KRITISCH zur Verhinderung von Leaks
return () => {
clearInterval(timer);
// Alle Abonnements entfernen
};
}, []);
```
Welche Symptome beobachtest du? Hoher Speicher in DevTools oder tatsächliche Abstürze?
Sicherheitsaudit
SicherStatic analysis detected 54 potential issues, all confirmed as false positives. The 'scripts' patterns are Go import statements in code examples. 'External_commands' are markdown backticks used for code formatting. 'Weak cryptographic algorithm' flags are triggered by Go standard library package names (crypto/pprof). 'Network' URLs are GitHub source URLs and localhost debugging endpoints. All findings are legitimate documentation content with no security concerns.
Qualitätsbewertung
Was du bauen kannst
Hartnäckige Produktionsfehler beheben
Systematische Debugging-Techniken anwenden, um schwer reproduzierbare Probleme in Produktionsumgebungen mit Logging, Stack-Trace-Analyse und differenziellem Debugging aufzuspüren.
Langsame Anwendungsperformance optimieren
Profiling-Tools und -Techniken verwenden, um Performance-Engpässe, Speicherlecks und ineffiziente Codemuster in JavaScript-, Python- und Go-Anwendungen zu identifizieren.
Strukturierte Debugging-Ansätze erlernen
Die wissenschaftliche Methode für Debugging, Rubber-Duck-Debugging und systematische Problemisolierung meistern, um bei jedem Code-Problem effektiver zu troubleshooten.
Probiere diese Prompts
Ich sehe diesen Fehler in meiner Anwendung: [insert error message and stack trace]. Wende systematische Debugging-Techniken an, um mir zu helfen, die Ursache zu identifizieren. Gehe die wissenschaftliche Methode durch: Beobachten, Hypothese aufstellen, Experimentieren, Analysieren.
Meine [application type] Anwendung läuft langsam. Hilf mir, Profiling-Tools zu verwenden, um den Engpass zu identifizieren. Schließe Schritt-für-Schritt-Anleitungen zur Verwendung von [Chrome DevTools / cProfile / pprof] ein, um zu finden, wo die Zeit verbraucht wird.
Ich habe einen intermittierenden Fehler, der nur manchmal auftritt und mit Async-Operationen zusammenzuhängen scheint. Führe mich durch das Debuggen von Race Conditions mit Trace-Logging und Timing-Analyse.
Ein Fehler ist zwischen der funktionierenden Version [version A] und der aktuellen Version [version B] aufgetreten. Führe mich durch die Verwendung von git bisect, um den genauen Commit zu finden, der die Regression eingeführt hat.
Bewährte Verfahren
- Reproduziere den Fehler konsistent, bevor du Versuche unternimmst, ihn zu beheben. Ohne konsistente Reproduktion kannst du deine Lösung nicht verifizieren.
- Isoliere das Problem, indem du nicht zusammenhängenden Code entfernst. Erstelle einen minimalen Reproduktionsfall, der das Problem demonstriert.
- Verwende den Debugger, nicht nur console.log-Anweisungen. Breakpoints ermöglichen es dir, den Programmstatus an jedem Punkt zu überprüfen.
Vermeiden
- Mehrere Änderungen gleichzeitig vornehmen. Ändere jeweils nur eine Sache, um zu verstehen, was den Fehler tatsächlich behebt.
- Fehlermeldungen ignorieren oder nicht den vollständigen Stack-Trace lesen. Die Fehlermeldung und der Stack-Trace enthalten wertvolle Hinweise.
- Annehmen, dass der Fehler im Code eines anderen liegt. Die meisten Fehler befinden sich in deinen eigenen kürzlichen Änderungen, nicht in Drittanbieter-Bibliotheken.