Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

C Tutorium – Debugging & Tracing – Knut Stolze. 2 Agenda Debugging & Debugger Tracing.

Ähnliche Präsentationen


Präsentation zum Thema: "C Tutorium – Debugging & Tracing – Knut Stolze. 2 Agenda Debugging & Debugger Tracing."—  Präsentation transkript:

1 C Tutorium – Debugging & Tracing – Knut Stolze

2 2 Agenda Debugging & Debugger Tracing

3 3 Debugger Schrittweises Nachvollziehen der Logik eines Programms/einer Funktion Zugriff auf und Modifikation von Programmvariablen Programm muss nicht neu übersetzt oder verändert werden Debug-Informationen sind jedoch notwendig – Compiler-Option “-g” – Übersetzung mit Optimierung behindert Abbildung zwischen Kompilat und Quelltext  nicht “-Ox” verwenden

4 4 Debugger (2) Bearbeiten von laufenden Programmen möglich – Debugger verbindet sich (“attach”) zu existierenden Prozess Analysieren von Core-Dateien – Art Log bei Programmabstürzen

5 5 Debugger – Funktionalität Run  Starte Programm (evtl. mit Optionen) Breakpoint setzen  Programm wird ausgeführt, bis die Stelle im Code bei der Ausführung erreicht wird; dann hält der Debugger das Programm an Next  Gehe einen Schritt weiter in der Ausführung des Programms Step  Steige in Unterfunktion hinab

6 6 Debugger – Funktionalität (2) Continue  Setze Programm fort, bis zum nächsten Breakpoint Restart  Starte Programm neu Backtrace  Gib den Aufruf-Stack aus Print  Variablen/Datenstrukturen anzeigen (global und lokal) Set  Setze Wert einer Variable …

7 7 gdb Kommandozeilen-Debugger gdb – Help-Befehl ist sehr hilfreich Debugger sehr hilfreich, wenn keine graphische Oberfläche verfügbar Graphische Debugger meist besser und übersichtlicher – Quelltext, Variablen, Call-Stack, … werden parallel angezeigt

8 8 ddd Graphischer Debugger ddd

9 9 Debugger – Internas Debugger startet Programm – Debugger & Programm sind ein Prozess  Debugger kann auch Speicher und Strukturen des Programms zugreifen Debugger verbindet sich zu laufendem Prozess – Debugger & Programm sind verschiedene Prozesse (Betriebssystem trennt klar beide Adressräume)  spezielle Systemfunktion  Erlaubt Zugriff auf Speicher anderer Prozesse  Funktion nicht selber nutzen, da sehr schwierig zu handhaben und risikobehaftet  Besondere Rechte notwendig

10 10 Tracing Programme werden nach der Entwicklung nicht mit Debug-Informationen ausgeliefert/verwendet; Programm wird i.A. auch noch optimiert  Starten/Attachen eines Debuggers nicht möglich  Nachvollziehen des Programmablaufs muss mit anderen Mitteln ermöglich werden

11 11 Tracing (2) Spezielle Komponente, die Trace- Informationen bei Bedarf sammelt – Ist im fertigen Produkt mit vorhanden Informationen – Eintritt, Verlassen, und ausgewählte Zwischenpunkte/Daten

12 12 Tracing (3) Beispiel “System J” – DBJ_TRACE_ENTRY() – DBJ_TRACE_EXIT() – DBJ_TRACE_ACTIVE() DBJ_TRACE_DATA1(tracePoint, length1, data1) – DBJ_TRACE_DATA2(tracePoint, length1, data1, length2, data2) – DBJ_TRACE_DATA3(tracePoint, length1, data1, length2, data2,length3, data3) – DBJ_TRACE_NUMBER(tracePoint, str, val) – DBJ_TRACE_STRING(tracePoint, str)


Herunterladen ppt "C Tutorium – Debugging & Tracing – Knut Stolze. 2 Agenda Debugging & Debugger Tracing."

Ähnliche Präsentationen


Google-Anzeigen