Prog Aufgabe

Blurio
Beiträge: 56
Registriert: Do 20. Nov 2008, 21:39

Re: Prog Aufgabe

Beitrag von Blurio »

Man kann auch irgendwie dieses OS161 von woanders in ner neueren Version installieren, das geht anscheinend. Keine Ahnung ob das sinnvoll is, weil wir ja das aus der Vorlesung benutzen sollen.
Chris
Beiträge: 109
Registriert: Mo 3. Nov 2008, 20:31
Wohnort: ca. 5 min zum HSaF ;) also Karlsruhe
Kontaktdaten:

Re: Prog Aufgabe

Beitrag von Chris »

ich probier grad nochmal fedora zum laufen zu bringen ... aber das auch nicht das wahre ...
Patric
Beiträge: 99
Registriert: Do 23. Okt 2008, 22:41

Re: Prog Aufgabe

Beitrag von Patric »

Chris hat geschrieben:ich probier grad nochmal fedora zum laufen zu bringen ... aber das auch nicht das wahre ...
also ich hab fedora 11 auf ner virtual box jetzt am laufen, musste nur für os161-gdb ncurses-devel nach installieren sonst ging alles problem los
lyzrd
Beiträge: 10
Registriert: So 9. Nov 2008, 11:26

Re: Prog Aufgabe

Beitrag von lyzrd »

hey!

hat irgend jemand von euch schonmal versucht os161 auf mac os x zu installieren, bei mir spuckt der nämlich immer wieder fehlermeldungen aus. habe jetzt die neueste version von den xcode drauf. nun meckert er aber das der compiler (gcc) nicht funktioniert und keine executables erstellen. Hat jmd ne idee? wäre echt super!
Chris
Beiträge: 109
Registriert: Mo 3. Nov 2008, 20:31
Wohnort: ca. 5 min zum HSaF ;) also Karlsruhe
Kontaktdaten:

Re: Prog Aufgabe

Beitrag von Chris »

jo habs jetzt auch zum laufen bekommen ... unter fedora halt ... komische sache
Benutzeravatar
Cauchy
Beiträge: 108
Registriert: So 30. Nov 2008, 17:08

Re: Prog Aufgabe

Beitrag von Cauchy »

Wie habt ihr die Aufgabe 0 gelöst. Sprich welche Befehle habt ihr in den Debugger reingepumpt um auf den Fehler zu stoßen? Ich komm mit dem GDB noch nicht wirklich zurecht!

Vielen Dank!
Romeo
Beiträge: 50
Registriert: Fr 19. Dez 2008, 20:24

Re: Prog Aufgabe

Beitrag von Romeo »

Guten Morgen,

Du kannst zunächst mal einen Breakpoint beim Einstieg in die complex_hello() setzen:

Code: Alles auswählen

b hello.c:complex_hello
(Man kann die gesetzten Breakpoints mit "info break" abfragen.)
Dann kannst du mit
erstmal weiterlaufen lassen, bis der GDB wieder bei deinem zweiten Breakpoint anhält. (Davor wird es wohl kaum zur Panik kommen)

Von dort aus würde ich mit
erstmal weitergehen.

Allerdings ist es nicht immer sinnvoll, in die "Tiefe" der Aufrufhierarchie abzusteigen.

Daher kann man auch
verwenden, um den aktuellen Funktionsaufruf zu überspringen und direkt zum nächsten Statement zu springen.

Sollte einem das dann doch mal passieren, dass man bspw. bei kmalloc in das Aufrufloch fällt, dann kann man mit

Code: Alles auswählen

finish
bis zum Ende der aktuelle Funktion / Prozedur gehen.

Der Fehler ist in diesem Fall sehr typisch :-) Du solltest ihn recht schnell finden, wenn du einfach so lange Schritt für Schritt durchgehst, bis der Kernel Panik bekommt.

Übrigens brauchst du nicht jedes Mal etwa "s" einzugeben. Ein Drücken auf Enter führt den letzten Befehl erneut aus.

Grüße
Roland
FreaK
Beiträge: 10
Registriert: Sa 25. Apr 2009, 16:02

Re: Prog Aufgabe

Beitrag von FreaK »

scheint auf Ubuntu wirklich nich zu funktionieren aber gcc versionen > 3. Da is ein bug in dem compiler.
Nach langem suchen bin ich dann auf ein Forum gestoßen in dem darauf verwiesen ist, (wenn ich das richtig sehe sind das sogar unsere vorgänger aus dem Jahrgang 06/07) blöder weise kann ich mit der anleitung nichts anfangen :unknown: .hier mal das zitat aus der offiziellen stellungname das schon im anderen forum gepostet wurde.
Die Probleme resultieren aus Fehlern in den binutils (sprintf(hdr->ar_size, "%10d") mit char ar_size[10]; schreibt das abschliessende NUL byte ausserhalb des Puffers) und gcc (fehlendes mode-Argument beim open()-Aufruf), die aber erst mit neueren GCC-Versionen und dem FORTIFY-Modus zur gruendlicheren Fehlersuche bemerkt werden.

Abhilfe verschaffen zwei Patches, erhaeltlich unter
http://i30www.ira.uka.de/~neider/edu/20 ... -uka.patch
und
http://i30www.ira.uka.de/~neider/edu/20 ... -uka.patch

Speichern Sie beide Patches in ~/os und erweitern Sie Schritt 4 um die Anwendung der Patches:

4. Build and install binutils, gcc and gdb:
$ cd cs161-binutils-1.4
$ patch -p1 < ../cs161-binutils-1.4-uka.patch
$ ./toolbuild.sh --cs161dir="$HOME/os"
$ cd ..
$ cd cs161-gcc-1.4
$ patch -p1 < ../cs161-gcc-1.4-uka.patch
$ ./toolbuild.sh --cs161dir="$HOME/os"
$ cd ..
$ cd cs161-gdb-1.4
$ ./toolbuild.sh --cs161dir="$HOME/os"
$ cd ..
nur dieser 4. schritt kan man so leider nich übernehmen ... :D

grüße FreaK
Benutzeravatar
Cauchy
Beiträge: 108
Registriert: So 30. Nov 2008, 17:08

Re: Prog Aufgabe

Beitrag von Cauchy »

Wieso nicht! Ich benutz Ubuntu und da tut alles!
Thomas
Administrator
Beiträge: 383
Registriert: Do 23. Okt 2008, 20:16
Wohnort: Karlsruhe
Kontaktdaten:

Re: Prog Aufgabe

Beitrag von Thomas »

also bei mir gehts mit ubuntu auch. nur scheiter ich iwie am gdb-tut. und zwar kommt nach dem next befehl dem man im tutorium ja eingeben soll, the programm is not running anstatt die erwartete ausgabe. naja iwie komisch, jemand ne ahnung woran das liegen könnte?
Antworten

Zurück zu „Übung“