Zum Hauptinhalt springen

Debugging mit KI-Sprachunterstützung

tipp

Die KI-gestützten Debugging-Funktionen von Cursor helfen Ihnen, Probleme schneller zu identifizieren und zu beheben, indem sie intelligente Analysen und Vorschläge liefern.

Erste Schritte​

KI-Debugging-Unterstützung aktivieren​

  1. Öffnen Sie die Befehlspalette (Strg/Cmd + Shift + P)
  2. Geben Sie "Enable AI Debug" ein
  3. Wählen Sie die Option, um die Funktion zu aktivieren

Grundfunktionen​

1. Fehleranalyse​

Wenn Sie auf einen Fehler stoßen, kann die KI bei der Analyse helfen:

example-error.js
// Fehler im Code
const user = getUserData();
console.log(user.name.toLowerCase());

// KI-Analyse
// ⚠️ Mögliche Null-Referenz
// - user könnte null/undefined sein
// - user.name könnte null/undefined sein
// Vorschlag: Null-Prüfungen hinzufügen

2. Schnelle Korrekturen​

Die KI schlägt Lösungen für häufige Probleme vor:

component.tsx
// Vorher: Typfehler
const handleClick = (event) => {
console.log(event.value);
};

// KI-Vorschlag
const handleClick = (event: React.MouseEvent) => {
console.log(event.currentTarget.value);
};

Erweiterte Funktionen​

1. Laufzeitanalyse​

Die KI kann das Laufzeitverhalten analysieren:

performance.py
# Leistungsproblem
def process_data(items):
result = []
for item in items:
result.append(transform(item))
return result

# KI-Vorschlag
def process_data(items):
return [transform(item) for item in items]
# 🚀 Leistungsverbesserung:
# - List Comprehension ist schneller
# - Reduziert Speicherzuweisung

2. Kontextbewusstes Debugging​

Die KI versteht den Kontext Ihrer Codebasis:

auth.service.ts
// Ursprünglicher Code mit Fehler
async function validateUser(token) {
const user = await getUser(token);
return user.isValid;
}

// KI-Debug-Analyse
/**
* Gefundene Probleme:
* 1. Keine Fehlerbehandlung für ungültige Tokens
* 2. Keine Typprüfung für das Benutzerobjekt
* 3. Fehlende Null-Prüfung für user
*/

// KI-Lösungsvorschlag
async function validateUser(token: string): Promise<boolean> {
try {
const user = await getUser(token);
return user?.isValid ?? false;
} catch (error) {
console.error('Benutzervalidierung fehlgeschlagen:', error);
return false;
}
}

Debugging-Workflows​

1. Interaktives Debugging​

Verwenden Sie KI während Debugging-Sitzungen:

// Setzen Sie KI-gestützte Haltepunkte
debugger; // KI analysiert Variablenzustände

// KI-Debug-Konsole
> ai.analyze(variableName)
> ai.suggest.fix()
> ai.explain.state()

2. Log-Analyse​

KI kann bei der Analyse komplexer Logs helfen:

# Komplexe Log-Ausgabe
[2024-03-20T10:15:30] Fehler: Verbindung verweigert...
[2024-03-20T10:15:31] Wiederholungsversuch 1...
[2024-03-20T10:15:32] Fehler: Zeitüberschreitung...

# KI-Analyse
"""
Problem erkannt: Netzwerkverbindungsproblem
- Anfängliche Verbindungsverweigerung
- Zeitüberschreitung beim Wiederholungsversuch
Vorschlag: Netzwerkeinstellungen und Firewall-Regeln überprüfen
"""

Sprachspezifische Funktionen​

JavaScript/TypeScript​

// Typinferenz
function processData(data) {
// KI schlägt Typen basierend auf der Verwendung vor
return data.map(item => item.value);
}

Python​

# Typhinweise und Laufzeitprüfungen
def calculate_average(numbers: List[float]) -> float:
# KI schlägt Eingabevalidierung vor
if not numbers:
raise ValueError("Leere Liste übergeben")
return sum(numbers) / len(numbers)

Bewährte Praktiken​

1. Fehlervermeidung​

Verwenden Sie KI, um potenzielle Fehler zu erkennen:

// KI-vorgeschlagene Fehlervermeidung
function divideNumbers(a: number, b: number): number {
// KI fügt Sicherheitsprüfungen hinzu
if (typeof a !== 'number' || typeof b !== 'number') {
throw new TypeError('Argumente müssen Zahlen sein');
}
if (b === 0) {
throw new Error('Division durch Null');
}
return a / b;
}

2. Codequalität​

KI hilft, die Codequalität zu verbessern:

// Vorher
function fn(x) {
var res = x + 1;
return res;
}

// Nachher (KI-verbessert)
const increment = (value: number): number => {
return value + 1;
};

3. Leistungsoptimierung​

KI identifiziert Leistungsprobleme:

// Leistungsproblem
const results = data
.filter(item => item.active)
.map(item => transform(item))
.filter(item => item !== null);

// KI-Optimierung
const results = data.reduce((acc, item) => {
if (item.active) {
const transformed = transform(item);
if (transformed !== null) {
acc.push(transformed);
}
}
return acc;
}, []);

Fortgeschrittene Debugging-Techniken​

1. Speicherleckerkennung​

KI hilft, Speicherlecks zu identifizieren:

// Speicherleckerkennung
class Component {
constructor() {
// KI-Warnung: Potenzielles Speicherleck
window.addEventListener('resize', this.onResize);
}

// KI-Vorschlag
cleanup() {
window.removeEventListener('resize', this.onResize);
}
}

2. Asynchrones Debugging​

Debuggen Sie asynchrone Operationen mit KI:

// Asynchrones Debugging
async function fetchData() {
try {
const response = await api.get('/data');
return response.data;
} catch (error) {
// KI bietet kontextbewusste Fehlerbehandlung
if (error.response?.status === 404) {
return [];
}
throw new Error(`Datenabruf fehlgeschlagen: ${error.message}`);
}
}

Integration mit Tools​

1. Versionskontrolle​

KI hilft bei der Behebung von Git-bezogenen Problemen:

# Git-Konflikt
<<<<<<< HEAD
const config = { port: 3000 };
=======
const config = { port: 8080 };
>>>>>>> feature-branch

# KI-Analyse
"""
Konflikttyp: Konfigurationswert
Empfehlung: Umgebungsvariable verwenden
Lösung: const config = { port: process.env.PORT || 3000 };
"""

2. Tests​

KI unterstützt beim Debugging von Tests:

user.test.ts
describe('Benutzerauthentifizierung', () => {
it('sollte Benutzeranmeldedaten validieren', async () => {
// KI schlägt Testverbesserungen vor
const result = await auth.validate(credentials);
expect(result).toBe(true);
// KI: Grenzfalltests hinzufügen
// KI: Zeitüberschreitungsbehandlung hinzufügen
});
});

Fehlerbehebung bei KI-Debugging​

Häufige Probleme​

  1. KI reagiert nicht

    # KI-Debug-Sitzung zurücksetzen
    > ai.debug.reset()
  2. Falsche Vorschläge

    # Mehr Kontext bereitstellen
    > ai.debug.context.add(fileContent)
  3. Leistungsprobleme

    # KI-Analyse optimieren
    > ai.debug.optimize()

Tipps für den Erfolg​

  1. Klaren Kontext bereitstellen

    • Relevanten Code einbeziehen
    • Erwartetes Verhalten beschreiben
    • Fehlermeldungen teilen
  2. Iteratives Debugging

    • Mit einfachen Fällen beginnen
    • Komplexität schrittweise erhöhen
    • KI-Vorschläge validieren
  3. Dokumentation pflegen

    • Behobene Probleme dokumentieren
    • KI-Vorschläge verfolgen
    • Lösungen teilen
tipp

Verwenden Sie ai.debug.explain(), um detaillierte Erklärungen zu KI-Vorschlägen zu erhalten!

Verwandte Ressourcen​