Akademisches Studien- und Fristenmanagement mit Quellenprüfung, Datenschutz und realistischer Handlungsplanung.
The English summary is being prepared. Showing the original description.
Systematic 6-phase debugging protocol. Structured approach to bugs with quick checks, isolated testing, 20-minute rule, and bug report template.
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
Strukturiertes Vorgehen bei Bugs — von der Symptom-Analyse bis zur Verifikation. Verhindert planloses Herumprobieren und stellt sicher, dass Fixes nachhaltig sind.
| Phase | Name | Ziel | Max. Zeit |
|---|---|---|---|
| 1 | Schnell-Checks | Offensichtliche Ursachen ausschliessen | 2 min |
| 2 | Diagnose | Ursache lokalisieren | 10 min |
| 3 | Isolierter Test | Bug reproduzierbar machen | 5 min |
| 4 | Fix | Minimale Korrektur | 10 min |
| 5 | Verifikation | Fix pruefen + Seiteneffekte | 5 min |
| 6 | Dokumentation | Wissen sichern | 2 min |
20-Minuten-Regel: Wenn nach 20 Minuten kein Fortschritt → Ansatz wechseln oder Hilfe holen.
Bevor du tief einsteigst — pruefe die haeufigsten Ursachen:
__pycache__ loeschen, Neustart# Cache leeren
find . -name "__pycache__" -type d -exec rm -rf {} + 2>&1
find . -name "*.pyc" -delete 2>&1
# Imports pruefen
python -c "import modulname"
# Syntax pruefen
python -m py_compile datei.py
git diff, git log --oneline -10Je nach Projekt koennen spezialisierte Diagnose-Skripte hilfreich sein:
| Tool | Zweck |
|---|---|
import_diagnose.py | Import-Probleme analysieren |
method_analyzer.py | Methoden-Signaturen pruefen |
env_checker.py | Umgebungsvariablen/Pfade validieren |
Hinweis: Eigene Diagnose-Tools je nach Projekt erstellen oder vorhandene Projekt-Tools nutzen. Wichtig ist das systematische Vorgehen, nicht das spezifische Tool.
# 1. Print-Debugging (schnell aber effektiv)
print(f"DEBUG: variable={variable!r}, type={type(variable)}")
# 2. Breakpoint (interaktiv)
breakpoint() # Python 3.7+
# 3. Traceback erweitern
import traceback
traceback.print_exc()
# 4. Logging statt Print
import logging
logging.basicConfig(level=logging.DEBUG)
logger = logging.getLogger(__name__)
logger.debug(f"State: {state!r}")
Ziel: Bug mit minimal Code reproduzieren.
# test_bug.py — Minimaler Reproduktions-Test
"""
Bug: [Kurze Beschreibung]
Erwartet: [Was sollte passieren]
Tatsaechlich: [Was passiert stattdessen]
"""
# Minimaler Setup
# ... nur das Noetigste
# Bug-Ausloeser
# ... exakter Code der den Bug triggert
# Erwartetes Ergebnis
# assert result == expected, f"Got {result}"
git bisect start, git bisect bad, git bisect good <commit># SCHLECHT: Symptom behandeln
try:
result = broken_function()
except: # Alles schlucken
result = default_value
# GUT: Ursache beheben
def broken_function():
if input_data is None: # Eigentliche Ursache: None-Check fehlte
return default_value
return process(input_data)
| Kategorie | Typischer Fix |
|---|---|
| None/Null | Guard-Clause: if x is None: return default |
| Index-Fehler | Bounds-Check: if i < len(lst) |
| Type-Fehler | Explizite Konvertierung: str(x), int(x) |
| Import-Fehler | Pfad korrigieren, Paket installieren |
| Encoding | UTF-8 explizit angeben: encoding='utf-8' |
| Race Condition | Lock/Mutex, oder Reihenfolge aendern |
| State-Bug | Initialisierung pruefen, Reset einfuegen |
# Unit-Tests
python -m pytest tests/ -v
# Nur betroffene Tests
python -m pytest tests/test_modul.py -v -k "test_name"
# Type-Check
python -m mypy datei.py
# Lint
python -m flake8 datei.py
## Bug-Report: [Kurztitel]
**Datum:** YYYY-MM-DD
**Schwere:** kritisch / hoch / mittel / niedrig
**Komponente:** [Modul/Datei]
### Symptom
[Was der User sieht / Fehlermeldung]
### Ursache
[Technische Root-Cause]
### Fix
[Was geaendert wurde + warum]
### Betroffene Dateien
- `datei1.py` — [Aenderung]
- `datei2.py` — [Aenderung]
### Praevention
[Wie kann dieser Bug-Typ in Zukunft vermieden werden?]
fix: [Kurze Beschreibung des Fixes]
Ursache: [Root-Cause in einem Satz]
Fix: [Was geaendert wurde]
Test: [Wie verifiziert]
Diese Sektion ist relevant fuer Desktop-GUI-Projekte mit PyQt6/PySide6.
| Trap | Problem | Loesung |
|---|---|---|
| Signal-Slot Disconnect | Signal connected aber Handler laeuft nicht | print in Handler, Signature pruefen |
| Thread-Safety | GUI-Update aus Worker-Thread | QMetaObject.invokeMethod oder Signal nutzen |
| Layout-Cascade | Widget unsichtbar/falsch platziert | widget.show(), Layout-Hierarchie pruefen |
| Event-Loop Block | GUI friert ein | Langzeit-Ops in QThread auslagern |
| Garbage Collection | Widget verschwindet ploetzlich | Referenz als self.widget halten |
# Widget-Hierarchie ausgeben
def dump_widget_tree(widget, indent=0):
print(" " * indent + f"{widget.__class__.__name__}: {widget.objectName()}")
for child in widget.findChildren(QWidget):
if child.parent() == widget:
dump_widget_tree(child, indent + 2)
# Signal-Debugging
from PyQt6.QtCore import QObject
original_connect = QObject.connect
def debug_connect(self, *args, **kwargs):
print(f"CONNECT: {self.__class__.__name__} -> {args}")
return original_connect(self, *args, **kwargs)
BUG GEFUNDEN?
│
▼
[Phase 1: Schnell-Checks] ──── Offensichtlich? → FIX
│
▼
[Phase 2: Diagnose] ────────── Ursache klar? → Phase 4
│
▼
[Phase 3: Isolierter Test] ── Reproduzierbar? → Phase 4
│ │
│ Nicht reproduzierbar?
│ │
│ Logging einbauen,
│ auf erneutes Auftreten warten
▼
[Phase 4: Fix] ─────────────── Minimal + verstanden
│
▼
[Phase 5: Verifikation] ────── Tests gruen? → Phase 6
│ │
│ Tests rot? → Zurueck zu Phase 4
▼
[Phase 6: Dokumentation] ───── Bug-Report + Commit
Wenn du nach 20 Minuten festhaengst:
git stash, komplett neu anfangenNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Akademisches Studien- und Fristenmanagement mit Quellenprüfung, Datenschutz und realistischer Handlungsplanung.
The English summary is being prepared. Showing the original description.
Aktives Lernen, Erarbeitung von Fachinhalten und strukturierte Erstellung von Synthesen.
The English summary is being prepared. Showing the original description.
Prüfungsvorbereitung, Selbsttests, Probeklausuren und systematische Fehleranalyse.
The English summary is being prepared. Showing the original description.
Терапия принятия и ответственности (ACT) Стивенса Хейса: модель Гексафлекс с шестью ключевыми процессами психологической гибкости.
The English summary is being prepared. Showing the original description.
Acceptance & Commitment Therapy (ACT) nach Steven Hayes: Hexaflex-Modell mit den sechs Kernprozessen psychischer Flexibilität.
The English summary is being prepared. Showing the original description.
Terapia de Aceptación y Compromiso (ACT) según Steven Hayes: modelo Hexaflex con los seis procesos nucleares de la flexibilidad psicológica.
The English summary is being prepared. Showing the original description.