• Keine Ergebnisse gefunden

Sichere Programmierung Praktikum 2

N/A
N/A
Protected

Academic year: 2022

Aktie "Sichere Programmierung Praktikum 2"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Sichere Programmierung Praktikum 2

Thema: Debugging mit dem GNU Debugger Wintersemester 2021/2022

Prof. Dr. Christoph Karg Hochschule Aalen

In diesem Praktikum werden die Kenntnisse im Debugging von C Programmen mit dem GNU Debugger weiter vertieft. Hierzu werden verschiedene C Programme vorgegeben.

Ein entsprechendes Archiv steht zum Download auf der Homepage der Vorlesung zur Verfügung.

Aufgabe 1 (Schleifen). Der Source Code für diese Ausgabe befindet sich in der Datei gdb-uebung-1.c.

a) Analysieren Sie den in der Datei enthaltenen Source Code.

b) Kompilieren Sie den C Code und führen Sie das Programm aus.

c) Disassemblieren Sie das Programm und erläutern Sie, wie der Maschinencode der Schleife aufgebaut ist.

d) Führen Sie das Programm im GDB aus und erklären Sie anhand von aussagekräf- tigen Screenshots, wie das Programm abläuft.

Aufgabe 2 (Funktionsaufrufe). Der Source Code für diese Ausgabe befindet sich in der Datei gdb-uebung-2.c.

a) Analysieren Sie den in der Datei enthaltenen Source Code.

b) Kompilieren Sie den C Code und führen Sie das Programm aus.

c) Führen Sie das Programm im GDB aus und untersuchen Sie, wie die Berechnung der Variable c in Zeile 18 abläuft. Beantworten Sie folgende Fragen:

• In welcher Reihenfolge werden die Funktionen aufgerufen?

• Welche Stack Frames werden erzeugt?

• Wie ist der Inhalt der Stack Frames?

1

(2)

Aufgabe 3 (Rekursion). Der Source Code für diese Ausgabe befindet sich in der Datei gdb-uebung-3.c.

a) Analysieren Sie den in der Datei enthaltenen Source Code.

b) Kompilieren Sie den C Code und führen Sie das Programm aus.

c) Führen Sie das Programm im GDB aus und untersuchen Sie, wie die Berechnung der Variable r in Zeile 14 abläuft. Beantworten Sie folgende Fragen:

• Wie viele Stack Frames werden erzeugt?

• Wie ist der Inhalt dieser Stack Frames?

• Wie wird die Parameterübergabe in Assembler umgesetzt?

Aufgabe 4 (Berechnung einer Summe). Der Source Code für diese Ausgabe befindet sich in der Datei gdb-uebung-4.c.

a) Analysieren Sie den in der Datei enthaltenen Source Code.

b) Kompilieren Sie den C Code und führen Sie das Programm aus.

c) Analysieren Sie das Programm mit dem GDB und beantworten Sie folgende Fragen:

• Berechnet die Schleife das korrekte Ergebnis?

• Welche Werte nehmen die Variablen bei der Ausführung des Programms an?

• Warum wird das falsche Ergebnis berechnet?

d) Erstellen Sie ein modifiziertes Programm, welches ein korrektes Ergebnis liefert.

Aufgabe 5 (Binäre Suche). Der Source Code für diese Ausgabe befindet sich in der Datei gdb-uebung-5.c.

a) Analysieren Sie den in der Datei enthaltenen Source Code.

b) Kompilieren Sie den C Code und führen Sie das Programm aus. Nutzen Sie die Eingaben 1,4, 26, 27 und 42.

c) Analysieren Sie das Programm mit dem GDB und beantworten Sie folgende Fragen:

• An welcher Stelle liegt eine fehlerhafte Programmierung vor?

• Aus welchem Grund bricht das Programm ab?

d) Erstellen Sie ein modifiziertes Programm, welches ein korrektes Ergebnis liefert.

2

Referenzen

ÄHNLICHE DOKUMENTE

Schreiben Sie ferner ein aufrufendes Hauptprogramm, in dem der Vektor x und die L¨ ange n eingelesen werden und der Vektor y ausgegeben wird.. Man kombiniere das Aitken-Verfahren

Schreiben Sie ferner ein aufrufendes Hauptprogramm, in dem die Schranken eingelesen werden und die Funktion armstrong aufgerufen wird.. Wie haben Sie Ihren Code auf

Schreiben Sie ein Programm, das drei nat¨ urliche Zahlen a, b, c ∈ N von der Tastatur einliest und am Bildschirm ausgibt, ob es sich dabei um ein derartiges Tripel handelt oder

Verwendung von DUNE auf dem eigenen Rechner: Wenn Sie ¨uber einen Rechner mit einem Unix-artigen Betriebssystem verf¨ugen, k¨onnen Sie diese ¨ Ubungen auch auf dem eige- nen

This work includes the design, development, and evaluation of techniques for editing, selecting, and creating source code on touchscreens.. The results contribute to text editing

Bilden beispiels- weise Tanja Müller und Max Maier die Gruppe 1, dann lautet der Dateiname für die Abgabe von Praktikum 1 sp-p1-g1-maier-mueller.tgz.. • Die Verzeichnisstruktur

Diese Funktion erhält als Eingabe zwei Zahlen a und b sowie einen String cipher_text und soll den Text unter Einsatz der Affinen Chiffre entschlüsseln.. Das Ergebnis soll als String

[r]