Akademisches Studien- und Fristenmanagement mit Quellenprüfung, Datenschutz und realistischer Handlungsplanung.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Systematic 6-phase debugging protocol. Structured approach to bugs with quick checks, isolated testing, 20-minute rule, and bug report template.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
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 anfangen아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Akademisches Studien- und Fristenmanagement mit Quellenprüfung, Datenschutz und realistischer Handlungsplanung.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Aktives Lernen, Erarbeitung von Fachinhalten und strukturierte Erstellung von Synthesen.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Prüfungsvorbereitung, Selbsttests, Probeklausuren und systematische Fehleranalyse.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Терапия принятия и ответственности (ACT) Стивенса Хейса: модель Гексафлекс с шестью ключевыми процессами психологической гибкости.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Acceptance & Commitment Therapy (ACT) nach Steven Hayes: Hexaflex-Modell mit den sechs Kernprozessen psychischer Flexibilität.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Terapia de Aceptación y Compromiso (ACT) según Steven Hayes: modelo Hexaflex con los seis procesos nucleares de la flexibilidad psicológica.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.