Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Kajetan Scholz Geändert vor über 8 Jahren
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)
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.