CodeGym /Java Kurs /Python SELF DE /Programm-Debugging

Programm-Debugging

Python SELF DE
Level 18 , Lektion 2
Verfügbar

8.1 Auftreten von Bugs

Software-Debugging ist der Prozess der Suche und Behebung von Fehlern oder Bugs in einem Programm. Dieser Prozess ist der spannendste und wichtigste Teil der Softwareentwicklung und hilft sicherzustellen, dass Programme korrekt funktionieren.

Geschichte des Begriffs "Bug"

Der Begriff "Bug" im Kontext von Computerprogrammen wurde erstmals in den 1940er Jahren verwendet. Obwohl das Konzept der "Bugs" schon vor den Computern existierte, um mechanische Defekte in verschiedenen Geräten zu bezeichnen.

Der erste dokumentierte Fall der Nutzung des Begriffs "Bug" in der Computertechnik war mit einem Team, das 1947(!) an der Harvard-Universität am Computer Mark II arbeitete. Das Team stellte fest, dass eines der Relais der Maschine nicht funktionierte, weil eine Motte hineingeraten war. Sie entfernten das Insekt und notierten es im Tagebuch als den "ersten tatsächlichen Fall eines gefundenen Insekts" (wörtlicher Bug).

Obwohl dies nicht der erste Fall der Nutzung des Begriffs "Bug" zur Bezeichnung eines Fehlers war, wurde dieser Vorfall bekannt und trug zur Popularisierung des Begriffs "Bug" bei.

Programm-Debugging

Debugging ist der Prozess der Suche, Diagnose und Behebung von Bugs in der Software. Der Debugging-Prozess umfasst mehrere Schritte:

  • Fehlererkennung: Bestimmung von Symptomen, die auf einen Fehler im Programm hinweisen.
  • Fehlerreproduktion: Schaffung von Bedingungen, unter denen der Fehler erneut auftritt, um seine Natur besser zu verstehen.
  • Problemdiagnose: Nutzung verschiedener Tools und Methoden zur Analyse des Codes und zur Ursachensuche des Fehlers.
  • Fehlerbehebung: Änderungen am Code vornehmen, um den Fehler zu beheben.
  • Testen: Überprüfung der Behebung und Testen des Programms, um sicherzustellen, dass der Fehler behoben ist und keine neuen Probleme aufgetreten sind.

Also Bug ist ein allgemeiner Begriff für jegliche Fehler in Programmen, und Debug (de-bug) ist der Prozess der Erkennung und Behebung dieser Fehler.

8.2 Werkzeuge und Methoden der Fehlerbehebung

Logging

Das Hinzufügen von Logs in den Programmcode ermöglicht es, die Ausführung zu verfolgen und Informationen über den Zustand von Variablen und Operationen an verschiedenen Stellen der Programmausführung zu erhalten. Für das Logging gibt es in Python eine großartige Bibliothek — logging.

Beispiel der Nutzung von Logging:


import logging

# Konfiguration des Loggings für die Ausgabe von Debug-Informationen
logging.basicConfig(level=logging.DEBUG)
            

def divide(a, b):
    # Protokollierung des Versuchs der Teilung
    logging.debug(f"Teile {a} durch {b}")
    if b == 0:
        # Protokollierung des Fehlers, wenn b gleich 0 ist
        logging.error("Versuch der Teilung durch Null!")
        return None

    # Führe die Teilung aus, wenn b nicht gleich 0 ist
    return a / b
            
result = divide(10, 2)
print(result)

Verwendung von Debuggern

Debugger sind Werkzeuge, die es Entwicklern ermöglichen, das Programm schrittweise auszuführen, Haltepunkte (breakpoints) zu setzen, die Werte von Variablen zu überprüfen und diese während der Programmausführung zu ändern.

Beliebte Debugger:

  1. GDB: GNU Debugger für C, C++ und andere Programmiersprachen.
  2. PDB: Eingebauter Python-Debugger.
  3. Visual Studio Debugger: Debugger, integriert in Microsoft Visual Studio.
  4. PyCharm Debugger: Debugger, integriert in die IDE PyCharm für Python.

Beispiel der Nutzung von PDB


import pdb

def faulty_function(a, b):
    pdb.set_trace()  # Setzen eines Haltepunkts
    result = a / b
    return result
            
faulty_function(10, 0)

Wenn das Programm pdb.set_trace() erreicht, stoppt es, und du kannst Debugger-Befehle wie next (nächster Schritt), print (Wert einer Variable ausgeben) und andere ausführen.

Wir werden das Debugging von Programmen am Beispiel des Debuggers in PyCharm lernen.

8.3 Verwendung von Debug

Generell umfasst Debug die aktive Nutzung von Debug-Werkzeugen und -Praktiken zur Erkennung und Behebung von Fehlern.

Setzen von Haltepunkten: Setze Haltepunkte im Code, um die Programmausführung an den interessierenden Stellen zu stoppen.

Schrittweise Ausführung: Führe das Programm schrittweise aus, und beobachte die Änderungen des Programmzustands und der Variablenwerte.

Analyse von Variablen: Untersuche die Werte von Variablen und Ausdrücken in verschiedenen Phasen der Programmausführung, um fehlerhafte Daten oder logische Fehler zu erkennen.

Fehlerbehebung: Nimm Änderungen am Code vor, um die gefundenen Fehler zu beheben.

Erneutes Testen: Nach der Fehlerbehebung teste das Programm, um sicherzustellen, dass der Fehler beseitigt ist und keine neuen Probleme entstanden sind.

Sieht einfach aus, nicht wahr? In der nächsten Vorlesung werden wir alle Schritte im Detail durchgehen :)

Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION