Prog Aufgabe
Re: Prog Aufgabe
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.
-
- Beiträge: 109
- Registriert: Mo 3. Nov 2008, 20:31
- Wohnort: ca. 5 min zum HSaF ;) also Karlsruhe
- Kontaktdaten:
Re: Prog Aufgabe
ich probier grad nochmal fedora zum laufen zu bringen ... aber das auch nicht das wahre ...
Re: Prog Aufgabe
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 losChris hat geschrieben:ich probier grad nochmal fedora zum laufen zu bringen ... aber das auch nicht das wahre ...
Re: Prog Aufgabe
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!
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!
-
- Beiträge: 109
- Registriert: Mo 3. Nov 2008, 20:31
- Wohnort: ca. 5 min zum HSaF ;) also Karlsruhe
- Kontaktdaten:
Re: Prog Aufgabe
jo habs jetzt auch zum laufen bekommen ... unter fedora halt ... komische sache
Re: Prog Aufgabe
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!
Vielen Dank!
Re: Prog Aufgabe
Guten Morgen,
Du kannst zunächst mal einen Breakpoint beim Einstieg in die complex_hello() setzen:
(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
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
Du kannst zunächst mal einen Breakpoint beim Einstieg in die complex_hello() setzen:
Code: Alles auswählen
b hello.c:complex_hello
Dann kannst du mit
Code: Alles auswählen
c
Von dort aus würde ich mit
Code: Alles auswählen
s
Allerdings ist es nicht immer sinnvoll, in die "Tiefe" der Aufrufhierarchie abzusteigen.
Daher kann man auch
Code: Alles auswählen
n
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
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
Re: Prog Aufgabe
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 .hier mal das zitat aus der offiziellen stellungname das schon im anderen forum gepostet wurde.
grüße FreaK
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 .hier mal das zitat aus der offiziellen stellungname das schon im anderen forum gepostet wurde.
nur dieser 4. schritt kan man so leider nich übernehmen ...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 ..
grüße FreaK
Re: Prog Aufgabe
Wieso nicht! Ich benutz Ubuntu und da tut alles!
-
- Administrator
- Beiträge: 383
- Registriert: Do 23. Okt 2008, 20:16
- Wohnort: Karlsruhe
- Kontaktdaten:
Re: Prog Aufgabe
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?